ダブルクリックで JToggleButton
スタンプ箱の入れ替えロックボタンを知らないうちに解除してしまっていて,スタンプが知らないうちに変なところに移動してしまうことがあったので,ロック解除をより厳密にダブルクリックで動作するようにした。JToggleButton を MyJToggleButton に入れ替えるとダブルクリックで動作するようになる。
ui/MyJToggleButton.java
package open.dolphin.ui; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.awt.event.MouseAdapter; import java.awt.event.MouseEvent; import javax.swing.ImageIcon; import javax.swing.JLabel; /** * ダブルクリックで動作する JToggleButton 的なもの * @author pns */ public class MyJToggleButton extends JLabel { private ImageIcon icon; private ImageIcon selectedIcon; private ActionListener action; private boolean isSelected; public MyJToggleButton() { super(); isSelected = false; addMouseListener(new MouseAdapter(){ @Override public void mouseClicked(MouseEvent e) { if (e.getClickCount() == 2) doClick(); } }); } public void doClick() { if (isSelected) { isSelected = false; super.setIcon(icon); } else { isSelected = true; super.setIcon(selectedIcon); } action.actionPerformed(new ActionEvent(this, 0, "clicked")); } public void setIcon(ImageIcon i) { this.icon = i; super.setIcon(i); } public void setSelectedIcon(ImageIcon i) { this.selectedIcon = i; } public void addActionListener(ActionListener l) { action = l; } public boolean isSelected() { return isSelected; } }