复制代码代码如下:
paquete com.hongyuan.gui;
import java.awt.eventqueue;
import java.awt.event.actionEvent;
import java.awt.event.actionListener;
import javax.swing.jbutton;
import javax.swing.jframe;
import javax.swing.jpanel;
import javax.swing.swingutilidades;
import javax.swing.uimanager;
import javax.swing.unsupportedlookandFeelException;
clase pública plaftest {
public static void main (string [] args) {
EventQueue.invokelater (new Runnable () {
@Anular
public void run () {
Traframe marco = nuevo PLAFFRAME ();
Frame.setDefaultCloseOperation (jframe.exit_on_close);
Frame.SetVisible (verdadero);
}
});
}
}
Clase que el traframe extiende jframe
{
Jpanel privado JPanel Buttonpanel;
Public PLAFFRAME () {
this.settitle ("plaftest");
this.setsize (400, 300);
ButtonPanel = new JPanel ();
// 查询观感并生成按钮
UiManager.lookandFeelinfo [] infos = uiManager.getInstalledlookAndfeels ();
para (uiManager.lookandFeelinfo Info: Infos) {
makeButton (info.getName (), info.getClassName ());
}
this.add (ButtonPanel);
}
void makeButton (nombre de cadena, string final PLAFNAME) {
JButton Button = new JButton (nombre);
ButtonPanel.Add (botón);
Button.AdDactionListener (new ActionListener () {
@Anular
public void Actionperformed (ActionEvent E) {
intentar {
// 设置观感并更新组件
UiManager.setlookandFeel (PLAFNAME);
SwingUtility.updateComponentTreeui (PLAFFRAME.THIS);
} Catch (ClassNotFoundException | InstanciationException
| Ilegalaccessexception
| UnsupportedlookandFeelException e1) {
e1.printstackTrace ();
}
}
});
}
}