复制代码代码如下:
包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.swingiritions;
导入javax.swing.uimanager;
导入javax.swing.unsupportedlookandfeelexception;
公共类Plaftest {
公共静态void main(string [] args){
eventqueue.invokelater(new runnable(){
@Override
public void run(){
plafframe Frame = new Plafframe();
frame.setDefaultClosePoration(jframe.exit_on_close);
frame.setvisible(true);
}
});
}
}
类plafframe扩展了Jframe
{
私人jpanel buttonpanel;
public plafframe(){
this.settitle(“ plaftest”);
this.setsize(400,300);
ButtonPanel = new Jpanel();
//查询观感并生成按钮
uimanager.lookandfeelinfo [] infos = uimanager.getInstalledLookandFeels();
for(uimanager.lookandfeelinfo信息:infos){
makeButton(info.getName(),info.getClassName());
}
this.add(buttonpanel);
}
void makebutton(字符串名称,最终字符串plafname){
jbutton button = new jbutton(name);
buttonpanel.add(button);
button.AddactionListener(new ActionListener(){
@Override
公共void Action Performed(ActionEvent E){
尝试 {
//设置观感并更新组件
uimanager.setlookandfeel(plafname);
swingutilities.updatecomponenttreeui(plafframe.this);
} catch(classNotFoundException | instantiationException
| Illegalaccessexception
|无基pordedlookandfeelexceptione1){
e1.printstacktrace();
}
}
});
}
}