Swing/InstalledLookAndFeels のバックアップ(No.4)
- バックアップ一覧
- 差分 を表示
- 現在との差分 を表示
- 現在との差分 - Visual を表示
- ソース を表示
- Swing/InstalledLookAndFeels へ行く。
- 1 (2009-01-20 (火) 12:25:47)
- 2 (2012-09-04 (火) 22:04:44)
- 3 (2013-01-12 (土) 21:48:32)
- 4 (2014-12-24 (水) 14:47:44)
- 5 (2016-04-08 (金) 15:15:34)
- 6 (2017-05-19 (金) 09:53:15)
- 7 (2018-05-11 (金) 16:36:31)
- 8 (2019-10-10 (木) 17:38:26)
- 9 (2021-05-14 (金) 19:25:14)
- 10 (2025-01-03 (金) 08:57:02)
- 11 (2025-01-03 (金) 09:01:23)
- 12 (2025-01-03 (金) 09:02:38)
- 13 (2025-01-03 (金) 09:03:21)
- 14 (2025-01-03 (金) 09:04:02)
- title: LookAndFeelの一覧を取得する tags: [LookAndFeel, UIManager, JMenuBar] author: aterai pubdate: 2009-01-19T13:31:06+09:00 description: インストールされているLookAndFeelの一覧を取得し、これらを切り替えるためのメニューバーを作成します。
概要
インストールされているLookAndFeel
の一覧を取得し、これらを切り替えるためのメニューバーを作成します。SwingSet3からの引用です。
Screenshot

Advertisement
サンプルコード
private ButtonGroup lookAndFeelRadioGroup;
private String lookAndFeel;
protected JMenu createLookAndFeelMenu() {
JMenu menu = new JMenu("LookAndFeel");
lookAndFeel = UIManager.getLookAndFeel().getClass().getName();
lookAndFeelRadioGroup = new ButtonGroup();
for(UIManager.LookAndFeelInfo lafInfo: UIManager.getInstalledLookAndFeels()) {
menu.add(createLookAndFeelItem(lafInfo.getName(), lafInfo.getClassName()));
}
return menu;
}
protected JRadioButtonMenuItem createLookAndFeelItem(String lafName, String lafClassName) {
JRadioButtonMenuItem lafItem = new JRadioButtonMenuItem();
lafItem.setSelected(lafClassName.equals(lookAndFeel));
lafItem.setHideActionText(true);
lafItem.setAction(new AbstractAction() {
@Override public void actionPerformed(ActionEvent e) {
ButtonModel m = lookAndFeelRadioGroup.getSelection();
try{
setLookAndFeel(m.getActionCommand());
}catch(Exception ex) {
ex.printStackTrace();
}
}
});
lafItem.setText(lafName);
lafItem.setActionCommand(lafClassName);
lookAndFeelRadioGroup.add(lafItem);
return lafItem;
}
public void setLookAndFeel(String lookAndFeel) throws ClassNotFoundException,
InstantiationException, IllegalAccessException, UnsupportedLookAndFeelException {
String oldLookAndFeel = this.lookAndFeel;
if(!oldLookAndFeel.equals(lookAndFeel)) {
UIManager.setLookAndFeel(lookAndFeel);
this.lookAndFeel = lookAndFeel;
updateLookAndFeel();
firePropertyChange("lookAndFeel", oldLookAndFeel, lookAndFeel);
}
}
private void updateLookAndFeel() {
for(Window window: Frame.getWindows()) {
SwingUtilities.updateComponentTreeUI(window);
}
}
View in GitHub: Java, Kotlin解説
上記のサンプルでは、UIManager.getInstalledLookAndFeels()
メソッドを使用してUIManager.LookAndFeelInfo
のリストを取得しています。
参考リンク
- SwingSet3
- Look and Feelの変更
- こちらは、
SwingSet2
からの引用です。
- こちらは、