Verder gewerkt aan PanelDevice. Feedback moet algemeen worden voor Devices.
This commit is contained in:
@@ -7,6 +7,12 @@ public class ArrayCycle<E> extends ArrayList<E> {
|
||||
|
||||
protected int index = 0;
|
||||
|
||||
public ArrayCycle(E... elementArary) {
|
||||
for (E element : elementArary) {
|
||||
add(element);
|
||||
}
|
||||
}
|
||||
|
||||
public E current() {
|
||||
return this.get(index);
|
||||
}
|
||||
|
||||
22
java/src/pm/util/swing/CycleButton.java
Normal file
22
java/src/pm/util/swing/CycleButton.java
Normal file
@@ -0,0 +1,22 @@
|
||||
package pm.util.swing;
|
||||
|
||||
import javax.swing.ImageIcon;
|
||||
|
||||
import pm.util.ArrayCycle;
|
||||
|
||||
public class CycleButton extends HoldButton {
|
||||
protected static final long serialVersionUID = 1L;
|
||||
|
||||
protected ArrayCycle<ImageIcon> imageIconCycle;
|
||||
|
||||
public CycleButton(HoldButtonListener holdButtonListener, ArrayCycle<ImageIcon> imageIconCycle) {
|
||||
super(holdButtonListener);
|
||||
this.imageIconCycle = imageIconCycle;
|
||||
cycle();
|
||||
}
|
||||
|
||||
public void cycle() {
|
||||
setIcon(imageIconCycle.current());
|
||||
imageIconCycle.next();
|
||||
}
|
||||
}
|
||||
33
java/src/pm/util/swing/HoldButton.java
Normal file
33
java/src/pm/util/swing/HoldButton.java
Normal file
@@ -0,0 +1,33 @@
|
||||
package pm.util.swing;
|
||||
|
||||
import java.awt.event.MouseEvent;
|
||||
import java.awt.event.MouseListener;
|
||||
|
||||
import javax.swing.JButton;
|
||||
|
||||
public class HoldButton extends JButton implements MouseListener {
|
||||
protected static final long serialVersionUID = 1L;
|
||||
|
||||
protected HoldButtonListener holdButtonListener;
|
||||
|
||||
public HoldButton(HoldButtonListener holdButtonListener) {
|
||||
this.holdButtonListener = holdButtonListener;
|
||||
addMouseListener(this);
|
||||
}
|
||||
|
||||
public void mousePressed(MouseEvent event) {
|
||||
if (event.getButton() == MouseEvent.BUTTON1) {
|
||||
holdButtonListener.buttonPressed(this);
|
||||
}
|
||||
}
|
||||
|
||||
public void mouseReleased(MouseEvent event) {
|
||||
if (event.getButton() == MouseEvent.BUTTON1) {
|
||||
holdButtonListener.buttonReleased(this);
|
||||
}
|
||||
}
|
||||
|
||||
public void mouseClicked(MouseEvent event) {}
|
||||
public void mouseEntered(MouseEvent event) {}
|
||||
public void mouseExited(MouseEvent event) {}
|
||||
}
|
||||
6
java/src/pm/util/swing/HoldButtonListener.java
Normal file
6
java/src/pm/util/swing/HoldButtonListener.java
Normal file
@@ -0,0 +1,6 @@
|
||||
package pm.util.swing;
|
||||
|
||||
public interface HoldButtonListener {
|
||||
public void buttonPressed(HoldButton button);
|
||||
public void buttonReleased(HoldButton button);
|
||||
}
|
||||
18
java/src/pm/util/swing/ToggleButton.java
Normal file
18
java/src/pm/util/swing/ToggleButton.java
Normal file
@@ -0,0 +1,18 @@
|
||||
package pm.util.swing;
|
||||
|
||||
import javax.swing.ImageIcon;
|
||||
import javax.swing.JButton;
|
||||
|
||||
import pm.util.ArrayCycle;
|
||||
|
||||
public class ToggleButton extends CycleButton {
|
||||
protected static final long serialVersionUID = 1L;
|
||||
|
||||
public ToggleButton(HoldButtonListener holdButtonListener, ImageIcon firstImageIcon, ImageIcon secondImageIcon) {
|
||||
super(holdButtonListener, new ArrayCycle<ImageIcon>(firstImageIcon, secondImageIcon));
|
||||
}
|
||||
|
||||
public void toggle() {
|
||||
cycle();
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user