复制代码代码如下:
пакет com.hongyuan.gui;
импортировать java.awt.eventqueue;
импортировать java.awt.event.actionevent;
импортировать java.awt.event.actionlistener;
Импорт javax.swing.jbutton;
импортировать javax.swing.jframe;
импортировать javax.swing.jpanel;
Импорт javax.swing.swingutilities;
Импорт javax.swing.uimanager;
импортировать javax.swing.unsupportedlookandfeelexception;
открытый класс Plaftest {
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 расширяет jframe
{
Частный JPanel ButtonPanel;
public plafframe () {
this.setTitle ("plaftest");
это. setize (400, 300);
ButtonPanel = new jPanel ();
// 查询观感并生成按钮
Uimanager.lookandfeelinfo [] Infos = uimanager.getInstallElookAndfeels ();
для (uimanager.lookandfeelinfo info: Infos) {
MakeButton (info.getName (), info.getClassName ());
}
this.add (ButtonPanel);
}
void makebutton (string name, final String plafname) {
Jbutton button = new Jbutton (имя);
buttonpanel.add (кнопка);
button.addactionListener (new ActionListener () {
@Override
public void actionperformed (actionEvent e) {
пытаться {
// 设置观感并更新组件
Uimanager.setlookandfeel (plafname);
SwingUtilities.updateComponentTreeui (plafframe.this);
} catch (classnotfoundexception | instantiationException
| Allectalaccessexception
| UnsupportedLookandFeelException e1) {
e1.printstacktrace ();
}
}
});
}
}