对于Minesweeper游戏,你一直在寻找
1)JToggleButton
2)将Icon添加到JToggleButton方法
> JToggleButton#setIcon();
> JToggleButton #setSelectedIcon();
> JToggleButton #setDisabledIcon();
3)将MouseListener添加到JToggleButton
4)使用方法SwingUtilities.isRightMouseButton()覆盖mouseClicked
结果可能是
来自代码
import java.awt.Insets;
import java.awt.event.MouseEvent;
import java.awt.event.MouseListener;
import javax.swing.Icon;
import javax.swing.JFrame;
import javax.swing.JToggleButton;
import javax.swing.SwingUtilities;
import javax.swing.UIManager;
public class MyToggleButton extends JFrame {
private static final long serialVersionUID = 1L;
private Icon errorIcon = UIManager.getIcon("OptionPane.errorIcon");
private Icon infoIcon = UIManager.getIcon("OptionPane.informationIcon");
private Icon warnIcon = UIManager.getIcon("OptionPane.warningIcon");
public MyToggleButton() {
final JToggleButton toggleButton = new JToggleButton();
toggleButton.setBorderPainted(false);
toggleButton.setBorder(null);
toggleButton.setFocusable(false);
toggleButton.setMargin(new Insets(0,0));
toggleButton.setContentAreaFilled(false);
toggleButton.setIcon((errorIcon));
toggleButton.setSelectedIcon(infoIcon);
//toggleButton.setRolloverIcon((infoIcon));
//toggleButton.setPressedIcon(warnIcon);
toggleButton.setDisabledIcon(warnIcon);
toggleButton.addMouseListener(new MouseListener() {
public void mouseClicked(MouseEvent e) {
if (SwingUtilities.isRightMouseButton(e) && e.getClickCount() == 1) {
if (toggleButton.isEnabled()) {
toggleButton.setEnabled(false);
} else {
toggleButton.setEnabled(true);
}
}
}
public void mousePressed(MouseEvent e) {
}
public void mouseReleased(MouseEvent e) {
}
public void mouseEntered(MouseEvent e) {
}
public void mouseExited(MouseEvent e) {
}
});
add(toggleButton);
setDefaultCloSEOperation(JFrame.EXIT_ON_CLOSE);
pack();
setVisible(true);
}
public static void main(String[] args) {
SwingUtilities.invokeLater(new Runnable() {
@Override
public void run() {
MyToggleButton t = new MyToggleButton();
}
});
}
}