diff --git a/src/Week11/Button.java b/src/Week11/Button.java index 42a6d78..0ad57e7 100644 --- a/src/Week11/Button.java +++ b/src/Week11/Button.java @@ -1,43 +1,44 @@ -import javax.swing.JButton; -import javax.swing.border.EmptyBorder; +import javax.swing.*; +import javax.swing.border.*; +import java.awt.*; +import java.awt.event.*; import java.awt.Color; -import java.awt.event.MouseEvent; -import java.awt.event.MouseListener; public class Button extends JButton { private boolean selected; private Color bg; private Color fg; + /** + * @param String buttonLabel + * @param Color fg + * @param Color bg + */ public Button(String buttonLabel, Color bg, Color fg) { super(buttonLabel); this.bg = bg; this.fg = fg; + applyCommon(); deselect(); } + // Apply default appearance to the button upon exiting the bounds. public void deselect() { selected = false; - applyDefaultStyle(); - } - - public void select() { - selected = true; - applyFocusedStyle(); - } - - private void applyDefaultStyle() { setBackground(bg); setForeground(fg); } - private void applyFocusedStyle() { + // Apply focused appearance to the button upon hover. + public void select() { + selected = true; setBackground(fg); setForeground(bg); } + // Apply hover functionality to all buttons, as well as removing certain default stylings. private void applyCommon() { addMouseListener( new MouseListener() { @@ -53,11 +54,15 @@ public class Button extends JButton { @Override public void mouseEntered(MouseEvent e) { select(); + repaint(); + revalidate(); } @Override public void mouseExited(MouseEvent e) { deselect(); + repaint(); + revalidate(); } }); diff --git a/src/Week11/Gui.java b/src/Week11/Gui.java index aba1a8b..a30db4f 100644 --- a/src/Week11/Gui.java +++ b/src/Week11/Gui.java @@ -1,9 +1,6 @@ -import javax.swing.JFrame; -import javax.swing.UIManager; +import javax.swing.*; -import java.awt.Color; -import java.awt.BorderLayout; -import java.awt.Dimension; +import java.awt.*; public class Gui extends JFrame { public Gui() { diff --git a/src/Week11/Panel.java b/src/Week11/Panel.java index 6ecb0ee..6c11b78 100644 --- a/src/Week11/Panel.java +++ b/src/Week11/Panel.java @@ -1,7 +1,6 @@ -import javax.swing.JPanel; +import javax.swing.*; -import java.awt.BorderLayout; -import java.awt.Color; +import java.awt.*; public class Panel extends JPanel { private Color bg; @@ -19,6 +18,21 @@ public class Panel extends JPanel { setBackground(bg); setForeground(fg); - add(new Button("Example text", new Color(160, 32, 240), Color.WHITE)); + Button b = new Button("Example text", new Color(160, 32, 240), Color.WHITE); + b.addActionListener( + e -> { + System.out.println("Button action."); + } + ); + + Button b2 = new Button("Example 2 text", new Color(160, 32, 240), Color.WHITE); + b2.addActionListener( + e -> { + System.out.println("Button 2 action."); + } + ); + + add(b); + add(b2); } } diff --git a/src/Week9/Task$SortByTitleComparator.class b/src/Week9/Task$SortByTitleComparator.class new file mode 100644 index 0000000..885a747 Binary files /dev/null and b/src/Week9/Task$SortByTitleComparator.class differ diff --git a/src/Week9/Task.class b/src/Week9/Task.class new file mode 100644 index 0000000..f6bfda3 Binary files /dev/null and b/src/Week9/Task.class differ diff --git a/src/Week9/Week9$1.class b/src/Week9/Week9$1.class new file mode 100644 index 0000000..4885178 Binary files /dev/null and b/src/Week9/Week9$1.class differ diff --git a/src/Week9/Week9$2.class b/src/Week9/Week9$2.class new file mode 100644 index 0000000..d1649fe Binary files /dev/null and b/src/Week9/Week9$2.class differ diff --git a/src/Week9/Week9$3.class b/src/Week9/Week9$3.class new file mode 100644 index 0000000..c2ded17 Binary files /dev/null and b/src/Week9/Week9$3.class differ diff --git a/src/Week9/Week9$4.class b/src/Week9/Week9$4.class new file mode 100644 index 0000000..fbfe28c Binary files /dev/null and b/src/Week9/Week9$4.class differ diff --git a/src/Week9/Week9.class b/src/Week9/Week9.class new file mode 100644 index 0000000..3ba2341 Binary files /dev/null and b/src/Week9/Week9.class differ diff --git a/src/Week9/Week9Gui.class b/src/Week9/Week9Gui.class new file mode 100644 index 0000000..dc55d0d Binary files /dev/null and b/src/Week9/Week9Gui.class differ