复制代码代码如下:
paket com.hongyuan.gui;
impor java.awt.eventqueue;
impor java.awt.event.actionevent;
impor java.awt.event.actionlistener;
impor javax.swing.jbutton;
impor javax.swing.jframe;
impor javax.swing.jpanel;
impor javax.swing.swingutilities;
impor javax.swing.uimanager;
impor javax.swing.unsupportedlookandfeelException;
Plaftest kelas publik {
public static void main (string [] args) {
Eventqueue.invokelater (runnable baru () {
@Mengesampingkan
public void run () {
Bingkai plafframe = plafframe baru ();
frame.setDefaultCloseOperation (jframe.exit_on_close);
frame.setVisible (true);
}
});
}
}
Plafframe kelas memperpanjang jframe
{
Private Jpanel Buttonpanel;
plafframe publik () {
this.settitle ("plaftest");
this.setsize (400, 300);
ButtonPanel = JPanel baru ();
// 查询观感并生成按钮
Uimanager.lookandfeelinfo [] infos = uimanager.getinstalledlookandfeels ();
untuk (uimanager.lookandfeelinfo info: infos) {
makeButton (info.getName (), info.getClassName ());
}
this.add (ButtonPanel);
}
void makeButton (nama string, string final plafname) {
Tombol jbutton = jbutton baru (nama);
ButtonPanel.Add (tombol);
Button.AddActionListener (ActionListener baru () {
@Mengesampingkan
public void actionPerformed (actionEvent e) {
mencoba {
// 设置观感并更新组件
Uimanager.setLookandFeel (plafname);
Swingutilities.updateComponentTreeUi (plafframe.ini);
} catch (ClassNotFoundException | InstantiationException
| IllegalAccessException
| UnsupportedLookandFeelException E1) {
e1.printstacktrace ();
}
}
});
}
}