当我尝试标记正方形时遇到问题时,我正在开发mineSweeper游戏。我正在使用代码
if (SwingUtilities.isRightMouseButton(e)) {
int clickedTile = e.getButton();
bombNum.setText(""+userMineNum);
//flagTile(clickedTile);
}
尝试访问JButton的编号。但是,这始终导致clickedTile的值为3(它是JButton的数组,因此不可能多次出现)。无论如何,我查看了e.getSource(),它获取了整个对象,如果我将其打印出来作为对象,它将是:
javax.swing.JButton[,221,124,44x31,alignmentX=0.0,alignmentY=0.5,border=,flags=288,maximumSize=,minimumSize=,preferredSize=,defaultIcon=resources/0.png,disabledIcon=,disabledSelectedIcon=,margin=javax.swing.plaf.InsetsUIResource[top=0,left=0,bottom=0,right=0],paintBorder=false,paintFocus=true,pressedIcon=,rolloverEnabled=true,rolloverIcon=,rolloverSelectedIcon=,selectedIcon=,text= ,defaultCapable=true]
重要字段是“文本”(以后可以更改,但是现在为空白)。我想知道如何访问它,所以我可以保存它的值以在正确的位置设置标志。
e.getSource().text
不起作用
任何帮助将不胜感激。
谢谢。
最佳答案
e.getButton()
表示正在单击鼠标的哪个按钮。在您的情况下,正确的数字或数字3。
除此之外,我相信您可以获得按钮的文本:
((JButton) e.getSource()).getName()
要么
((JButton) e.getSource()).getText()
但是,我强烈建议您检查一下是否正在单击的按钮而不是其他组件。