我正在开发一款扫雷游戏,当时我在尝试标记方 block 时遇到了问题。我正在使用代码
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()
但我强烈建议您检查是否是一个被单击的按钮而不是其他组件。
关于java - 在 Java 中获取 JButton 的一个元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45334399/