Verder gewerkt aan PanelDevice. Feedback moet algemeen worden voor Devices.

This commit is contained in:
Bram Veenboer
2011-03-06 13:05:36 +00:00
parent b38f9541d5
commit d8e79c3363
9 changed files with 211 additions and 169 deletions

View File

@@ -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);
}

View 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();
}
}

View 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) {}
}

View File

@@ -0,0 +1,6 @@
package pm.util.swing;
public interface HoldButtonListener {
public void buttonPressed(HoldButton button);
public void buttonReleased(HoldButton button);
}

View 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();
}
}