Quellcode durchsuchen

made a custom listener to manage both radio buttons

tarfeef101 vor 6 Jahren
Ursprung
Commit
f9c4a4ffd6
2 geänderte Dateien mit 29 neuen und 30 gelöschten Zeilen
  1. 21 25
      assignments/a3/src/main/java/Controls.java
  2. 8 5
      assignments/a3/src/main/java/Model.java

+ 21 - 25
assignments/a3/src/main/java/Controls.java

@@ -16,6 +16,25 @@ public class Controls extends JPanel implements Observer
   private JSlider rating;
   private JRadioButton grid;
   private JRadioButton list;
+  private class customListener implements ActionListener
+  {
+    public void actionPerformed(ActionEvent e)
+    {
+      if (e.getSource() ==grid)
+      {
+        grid.setSelected(true);
+        list.setSelected(false);
+        model.switchLayout();
+      }
+      else
+      {
+        list.setSelected(true);
+        grid.setSelected(false);
+        model.switchLayout();
+      }
+    }
+  }
+  
   private ButtonGroup layouts;
   private Image starImg;
   private Image gridImg;
@@ -70,33 +89,10 @@ public class Controls extends JPanel implements Observer
     this.folderIcon = new ImageIcon(folderImg);
     
     this.grid = new JRadioButton(gridIcon, true);
-    grid.addActionListener(new ActionListener()
-    {
-      public void actionPerformed(ActionEvent e)
-      {
-        if (!(grid.isSelected()))
-        {
-          grid.setSelected(true);
-          list.setSelected(false);
-          model.switchLayout();
-        }
-      }
-    });
+    grid.addActionListener(customListener);
     
     this.list = new JRadioButton(listIcon, false);
-    list.addActionListener(new ActionListener()
-    {
-      public void actionPerformed(ActionEvent e)
-      {
-        System.out.println("Click!");
-        if (!(list.isSelected()))
-        {
-          list.setSelected(true);
-          grid.setSelected(false);
-          model.switchLayout();
-        }
-      }
-    });
+    list.addActionListener(customListener);
     
     this.layouts = new ButtonGroup();
     layouts.add(grid);

+ 8 - 5
assignments/a3/src/main/java/Model.java

@@ -48,12 +48,15 @@ public class Model extends Observable
     notifyObservers();
   }
   
-  public void switchLayout()
+  public void switchLayout(boolean flag)
   {
-    grid = !grid;
-    System.out.println("Layout Toggled!");
-    setChanged();
-    notifyObservers();
+    if (grid != flag)
+    {
+      grid = flag;
+      System.out.println("Layout Toggled!");
+      setChanged();
+      notifyObservers();
+    }
   }
 
   // Add observer to be notified on change