Swing/InstalledLookAndFeels のバックアップ差分(No.5)
- バックアップ一覧
- 現在との差分 を表示
- 現在との差分 - Visual を表示
- ソース を表示
- バックアップ を表示
- Swing/InstalledLookAndFeels へ行く。
- 追加された行はこの色です。
- 削除された行はこの色です。
--- title: LookAndFeelの一覧を取得する tags: [LookAndFeel, UIManager, JMenuBar] author: aterai pubdate: 2009-01-19T13:31:06+09:00 description: インストールされているLookAndFeelの一覧を取得し、これらを切り替えるためのメニューバーを作成します。 --- * 概要 [#n56e30d7] インストールされている`LookAndFeel`の一覧を取得し、これらを切り替えるためのメニューバーを作成します。[https://swingset3.dev.java.net/ SwingSet3]からの引用です。 インストールされている`LookAndFeel`の一覧を取得し、これらを切り替えるためのメニューバーを作成します。[https://java.net/projects/Swingset3 Swingset3 — Project Kenai]からの引用です。 #download(https://lh3.googleusercontent.com/_9Z4BYR88imo/TQTOmfktdJI/AAAAAAAAAco/gBdSD5Qn9-Y/s800/InstalledLookAndFeels.png) * サンプルコード [#hedae77c] #code(link){{ 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()) { 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{ try { setLookAndFeel(m.getActionCommand()); }catch(Exception ex) { } 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)) { if (!oldLookAndFeel.equals(lookAndFeel)) { UIManager.setLookAndFeel(lookAndFeel); this.lookAndFeel = lookAndFeel; updateLookAndFeel(); firePropertyChange("lookAndFeel", oldLookAndFeel, lookAndFeel); } } private void updateLookAndFeel() { for(Window window: Frame.getWindows()) { for (Window window: Frame.getWindows()) { SwingUtilities.updateComponentTreeUI(window); } } }} * 解説 [#q3a14a56] 上記のサンプルでは、`UIManager.getInstalledLookAndFeels()`メソッドを使用して`UIManager.LookAndFeelInfo`のリストを取得しています。 * 参考リンク [#p2860eba] - [https://swingset3.dev.java.net/ SwingSet3] - [https://java.net/projects/Swingset3 Swingset3 — Project Kenai] - [[Look and Feelの変更>Swing/LookAndFeel]] -- こちらは、`SwingSet2`からの引用です。 * コメント [#k986f53e] #comment #comment