berikut akan dibahas cara mengganti tampilan JFrame saat program sedang berjalan. misalkan akan diganti dengan tampilan Nimbus, Metal, Windows, dll. berikut ulasannya :

untuk mengganti tampilan saat program sedang berjalan kita menggunakan SwingUtilities.updateComponentTreeUI().

  • buat project baru di netbeans dan tambahkan class baru dengan nama ChangeTheme.
public class ChangeTheme {

private UIManager.LookAndFeelInfo[] lookFeel = null;
private String[] lNmae = null;

public ChangeTheme() {
lookFeel = UIManager.getInstalledLookAndFeels();
lNmae = new String[lookFeel.length];
for (int i = 0; i < lookFeel.length; i++) {
lNmae[i] = lookFeel[i].getName();
}
}

public void setTheme(int index) {
try {
UIManager.setLookAndFeel(lookFeel[index].getClassName());
} catch (ClassNotFoundException | InstantiationException | IllegalAccessException | UnsupportedLookAndFeelException ex) {
ex.printStackTrace();
}
}
}
  • Buat JFrame Baru dan desainlah seperti gambar berikut :

  • lalu klick kanan pada button Apply Change pilih Event -> Action -> actionPerformed. ubah codingnya seperti berikut :

private void btnApplyActionPerformed(java.awt.event.ActionEvent evt) {
// TODO add your handling code here:
if (rbtMetal.isSelected()) {
new ChangeTheme().setTheme(0);
SwingUtilities.updateComponentTreeUI(this);
} else if (rbtNimbus.isSelected()) {
new ChangeTheme().setTheme(1);
SwingUtilities.updateComponentTreeUI(this);
} else if (rbtMotif.isSelected()) {
new ChangeTheme().setTheme(2);
SwingUtilities.updateComponentTreeUI(this);
} else if (rbtWindows.isSelected()) {
new ChangeTheme().setTheme(3);
SwingUtilities.updateComponentTreeUI(this);
} else if (rbtWindowsClassic.isSelected()) {
new ChangeTheme().setTheme(4);
SwingUtilities.updateComponentTreeUI(this);
}
}

jalankan programnya lalu pilih theme dan klik apply change maka tampilan jframe akan berubah sesuai pilihan.

Download Project disini.