Java 打印一封信的按钮
如何打印用户单击的按钮的字母,然后禁用该按钮 我使用for循环生成每个字母的按钮Java 打印一封信的按钮,java,swing,jframe,jbutton,actionlistener,Java,Swing,Jframe,Jbutton,Actionlistener,如何打印用户单击的按钮的字母,然后禁用该按钮 我使用for循环生成每个字母的按钮 } for (int i = 65; i <= 90; i++) { btnLetters = new JButton(" " + (char) i); letterJPanel.add(btnLetters); letterJPanel.setLayout(new FlowLayout()); btnLetters.addActionLi
} for (int i = 65; i <= 90; i++) {
btnLetters = new JButton(" " + (char) i);
letterJPanel.add(btnLetters);
letterJPanel.setLayout(new FlowLayout());
btnLetters.addActionListener(this);
}
这部分只适用于创建的最后一个按钮,因此我认为它是无意义的。< /P> 最好做那样的事
if (ae.getSource() instance of JButton &&
((JButton ) ae.getSource()).getText().length()==2) {
PRINT(((JButton ) ae.getSource()).getText().substring(1));
((JButton ) ae.getSource()).setEnabled(false);
}
其中,PRINT是实际的打印(不管您怎么做)也许使用内部类会更容易 创建按钮时
JButton button = new JButton("A");
button.addActionListener(new ActionListener(
public void actionPerformed(ActionEvent e){
printMethod(button.getLabel()); //You have to implement this...
this.disable()
});
创建一个新类
public class ButtonDisabler implements ActionListener {
@Override
public void actionPerformed(ActionEvent e) {
JButton button = (JButton)e.getSource();
System.out.println(button.getText() + " pressed");
button.setEnabled(false);
}
}
然后将其添加到每个按钮
btnLetters.addActionListener(new ButtonDisabler());
首先,我会这样做: (看起来比从整数中转换要好得多)
mKorbel编辑了我的答案,他删除了“this.disable()”line@Juan安东尼奥·戈麦斯·莫里亚诺(Antonio Gomez Moriano)反对否决投票,方法
disable
不是官方JButtons API的一部分
@mKorbel我刚刚检查过,该方法已经存在,尽管已经弃用(从1.1开始)。谢谢你的澄清。
public class ButtonDisabler implements ActionListener {
@Override
public void actionPerformed(ActionEvent e) {
JButton button = (JButton)e.getSource();
System.out.println(button.getText() + " pressed");
button.setEnabled(false);
}
}
btnLetters.addActionListener(new ButtonDisabler());
for(char c = 'A'; c <= 'Z'; c++)
{
button.setText(""+c);
...
}
public void actionPerformed(ActionEvent ae)
{
//assuming you only set the action for the JButtons with letters
JButton button = (JButton) ae.getSource();
String letter = button.getText();
print(letter); //for example System.out.println();
button.setEnabled(false);
}