OSDN Git Service

set default look and feel to system look and feel (such as Windows, Motif, GTK, ...)
authortama3 <tama3@acee48c3-7b26-0410-bdac-b3d0e5314bbc>
Sat, 7 Jul 2007 03:57:12 +0000 (03:57 +0000)
committertama3 <tama3@acee48c3-7b26-0410-bdac-b3d0e5314bbc>
Sat, 7 Jul 2007 03:57:12 +0000 (03:57 +0000)
git-svn-id: svn+ssh://svn.sourceforge.jp/svnroot/stigmata/trunk@149 acee48c3-7b26-0410-bdac-b3d0e5314bbc

src/main/java/jp/naist/se/stigmata/ui/swing/StigmataFrame.java

index b882a92..8e5513c 100644 (file)
@@ -16,6 +16,7 @@ import java.io.StringWriter;
 import java.util.HashMap;\r
 import java.util.Map;\r
 \r
+import javax.swing.ButtonGroup;\r
 import javax.swing.JCheckBoxMenuItem;\r
 import javax.swing.JFrame;\r
 import javax.swing.JLabel;\r
@@ -28,6 +29,7 @@ import javax.swing.JScrollPane;
 import javax.swing.JSeparator;\r
 import javax.swing.JTabbedPane;\r
 import javax.swing.JTextArea;\r
+import javax.swing.LookAndFeel;\r
 import javax.swing.SwingUtilities;\r
 import javax.swing.UIManager;\r
 import javax.swing.WindowConstants;\r
@@ -353,6 +355,7 @@ public class StigmataFrame extends JFrame{
     }\r
 \r
     private void initComponents(){\r
+        setDefaultUI();\r
         JMenuBar menubar = new JMenuBar();\r
         menubar.add(createFileMenu());\r
         menubar.add(createHelpMenu());\r
@@ -428,14 +431,13 @@ public class StigmataFrame extends JFrame{
         JMenuItem about = Utility.createJMenuItem("about", new AboutAction(this));\r
         JMenuItem license = Utility.createJMenuItem("license", new LicenseAction(this));\r
         JMenuItem help = Utility.createJMenuItem("helpmenu");\r
-        JMenu laf = Utility.createJMenu("lookandfeel");\r
         expertmodeMenu = Utility.createJCheckBoxMenuItem("expertmenu");\r
 \r
         menu.add(about);\r
         menu.add(license);\r
         menu.add(help);\r
         menu.add(new JSeparator());\r
-        menu.add(laf);\r
+        menu.add(createLookAndFeelMenu());\r
         menu.add(new JSeparator());\r
         menu.add(expertmodeMenu);\r
 \r
@@ -444,25 +446,40 @@ public class StigmataFrame extends JFrame{
                 expertMenuActionPerformed(((JCheckBoxMenuItem)e.getSource()).getState());\r
             }\r
         });\r
+        help.setEnabled(false);\r
+\r
+        return menu;\r
+    }\r
 \r
-        final UIManager.LookAndFeelInfo[] info = UIManager.getInstalledLookAndFeels();\r
+    private JMenu createLookAndFeelMenu(){\r
+        JMenu laf = Utility.createJMenu("lookandfeel");\r
+        ButtonGroup bg = new ButtonGroup();\r
+        UIManager.LookAndFeelInfo[] info = UIManager.getInstalledLookAndFeels();\r
+        LookAndFeel lookfeel = UIManager.getLookAndFeel();\r
+\r
+        ActionListener listener = new ActionListener(){\r
+            public void actionPerformed(ActionEvent e){\r
+                try{\r
+                    String command = e.getActionCommand();\r
+                    UIManager.setLookAndFeel(command);\r
+                    SwingUtilities.updateComponentTreeUI(StigmataFrame.this);\r
+                } catch(Exception ee){\r
+                }\r
+            }\r
+        };\r
         for(int i = 0; i < info.length; i++){\r
-            final int index = i;\r
-            JMenuItem item = new JMenuItem(info[i].getName());\r
+            JCheckBoxMenuItem item = new JCheckBoxMenuItem(info[i].getName());\r
+            item.setActionCommand(info[i].getClassName());\r
+            item.addActionListener(listener);\r
+            bg.add(item);\r
             laf.add(item);\r
-            item.addActionListener(new ActionListener(){\r
-                public void actionPerformed(ActionEvent e){\r
-                    try{\r
-                        UIManager.setLookAndFeel(info[index].getClassName());\r
-                        SwingUtilities.updateComponentTreeUI(StigmataFrame.this);\r
-                    }catch(Exception ee){\r
-                    }\r
-                }\r
-            });\r
+\r
+            if(info[i].getClassName().equals(lookfeel.getClass().getName())){\r
+                item.setState(true);\r
+            }\r
         }\r
-        help.setEnabled(false);\r
 \r
-        return menu;\r
+        return laf;\r
     }\r
 \r
     public void setExpertMode(boolean expertmode){\r
@@ -538,4 +555,11 @@ public class StigmataFrame extends JFrame{
         countmap.put(label, i);\r
         return i;\r
     }\r
+\r
+    private void setDefaultUI(){\r
+        try{\r
+            UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());\r
+        } catch(Exception e){\r
+        }\r
+    }\r
 }\r