复制代码代码如下:
pacote com.hongyuan.gui;
importar java.awt.eventqueue;
importar java.awt.event.actionEvent;
importar java.awt.event.actionListener;
importar javax.swing.jbutton;
importar javax.swing.jframe;
importar javax.swing.jpanel;
importar javax.swing.swingutilities;
importar javax.swing.uimanager;
importar javax.swing.unsupportsLookAndFeException;
classe pública Batletest {
public static void main (string [] args) {
EventQueue.invokelater (new Runnable () {
@Override
public void run () {
Plafframe Frame = new Plafframe ();
frame.setDefaultCloseoperation (jframe.exit_on_close);
frame.setVisible (true);
}
});
}
}
Plafframe de classe estende JFrame
{
Private JPanel ButtonPanel;
public Plafframe () {
this.setTitle ("Bletest");
this.SetSize (400, 300);
ButtonPanel = new JPanel ();
// 查询观感并生成按钮
Uimanager.LookAndfeelinfo [] Infos = UImanager.getInstalledLeandfeels ();
para (uimanager.lookandfeelinfo informações: infos) {
makeButton (info.getName (), info.getclassName ());
}
this.add (ButtonPanel);
}
void makeButton (nome da string, string final Plafname) {
Botão jbutton = novo jbutton (nome);
ButtonPanel.add (botão);
button.addactionListener (new ActionListener () {
@Override
public void ActionPormed (ActionEvent E) {
tentar {
// 设置观感并更新组件
Uimanager.setLookAndFeel (Plafname);
Swingutilities.updatecomponentTreeUi (plafframe.This);
} Catch (ClassNotFoundException | InstantionException
| IlegalAccessException
| Não suportado eFeEleException E1) {
e1.printStackTrace ();
}
}
});
}
}