for (int b = 0; b < Hsize; b++) {
for (int c = 0; c < Lsize; c++) {
System.out.println(Hsize + Lsize);
Button[b][c] = new JButton("b:" + b + "c:" + c);
Button[b][c].setBounds(l, h, 40, 40);
Button[b][c].addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
System.out.println(e.getSource());
}
});
}
}
按下其中一个按钮时的输出:
javax.swing.JButton[0 2,95,105,40x40,alignmentX=0.0,alignmentY=0.5,border=javax.swing.plaf.BorderUIResource$CompoundBorderUIResource@53c0c322,flags=296,maximumSize=,minimumSize=,preferredSize=,defaultIcon=D:/Users/Max/workspace/Battleship/images/Unbenannt.png,disabledIcon=D:/Users/Max/workspace/Battleship/images/Unbenannt.png,disabledSelectedIcon=D:/Users/Max/workspace/Battleship/images/Unbenannt.png,margin=javax.swing.plaf.InsetsUIResource[top=2,left=14,bottom=2,right=14],paintBorder=true,paintFocus=true,pressedIcon=,rolloverEnabled=true,rolloverIcon=,rolloverSelectedIcon=,selectedIcon=,text=,defaultCapable=true]
如何仅过滤掉{0 2
或其他任何不同的内容,例如b / c坐标?
答案 0 :(得分:0)
由于您已将侦听器附加到按钮,因此您知道触发对象是Button。您可以将其强制转换为按钮,然后使用get方法访问所需的信息。现在你只是打印关于物体的一切。
public void actionPerformed(ActionEvent e) {
Button b = (Button)e.getSource();
System.out.println(b.getAlignmnetX()); //get whatever you need
}
Button继承自一堆类,因此您必须查找文档以确定哪些get方法可供您使用。
http://docs.oracle.com/javase/7/docs/api/java/awt/Button.html