可能有两堂课,而在一堂课中
arrayButtons[i][j].addActionListener(actionListner);
在另一个
ActionListener actionListner = new ActionListener() {
public void actionPerformed(ActionEvent e) {
for (int j = 0; j < arrayButtons.length; j++) {
for (int i = 0; i < arrayButtons[j].length; i++) {
if (arrayButtons[j][i] == e.getSource()) {
if ((gameNumber == 2) && (playHand.getNumberOfCards() == 0)) {
if (player[j].getCard(i).getSuit() == Suit.HEARTS.toString() && player[j].hasSuitBesideHearts())
//second game
messageOnTable("xxx");
else{
arrayButtons[j][i].setVisible(false);
test[j].setIcon(player[j].getCard(i).getImage());
pnCardNumber[j].setText(Integer.toString(player[j].getCard(i).getNumber()));
pnCardName[j].setText(player[j].getCard(i).toString());
pnCardSuit[j].setText(player[j].getCard(i).getSuit());
playHand.addCard(player[j].getCard(i), j);
player[j].removeCard(i);
}
}
}
//更多原因是因为我需要将按钮(摆动)分离到动作监听器
我该怎么办?
谢谢
不仅可以将这两个部分分开,而且还建议这样做(请参阅MVC模式-非常有关分离屏幕控件(如按钮)和程序逻辑)
我想到的最简单的方法是编写一个实现ActionListener
接口的命名类,如下所示:
public class SomeActionListener implements ActionListener{
private JTextField textField1;
private JComboBox combo1;
private JTextField textField2;
//...
public SomeActionListener(JTextField textField1, JComboBox combo1,
JTextField textField2){
this.textField1=textField1;
this.combo1=combo1;
this.textField2=textField2;
//...
}
public void actionPerformed(ActionEvent e) {
//cmd
}
}
然后将其添加到您的按钮:
ActionListener actionListener = new SomeActionListener(textField1, combo1, textField2);
someButton.addActionListener(actionListener);
我正在处理JButton事件。我有一个JPanel类,我们叫Panel1,包含一个公共的JButton,我们叫它Button1。单击此按钮时: 但我有兴趣: 有什么建议吗?
问题内容: 我有两个分别称为“左”和“右”。“左”按钮将矩形对象向左移动,“右”按钮将其向右移动。我在班上有一个充当单击任一按钮时的侦听器。但是,我希望单击每个动作时都会发生不同的动作。如何区分点击的? 问题答案: 将actionCommand设置到每个按钮。 //将动作命令设置到两个按钮上。 更新:
问题内容: 基本上,我要执行的操作是获得一个启动按钮,以启动在另一个类中运行并作用于另一个对象的方法。 我给侦听器的代码: 我的另一堂课的代码: 和 我觉得这不太难,但是我缺少了一块。 问题答案: 在匿名类中引用事物的一种方法是使用关键字: 或者,您可以访问封闭类型的成员(变量或方法):
导入javax.swing.*; class Labels extensions JFrame{ JPanel pnl = new JPanel(); } 如果我想将其用作JApplet怎么办?必须做什么?很难更改吗? JFrame上运行的东西和JApplet上的东西是一样的吗?
下面的代码是项目的动作侦听器。基本上,我有 4 个单选按钮,当我单击一个时,我希望它更改屏幕上的变量。当我运行代码时,它只是将所有值相加。还有其他方法可以做到这一点吗?
我有两节课。 一个扩展canvas并在内部创建一个jframe,将canvas添加到该jframe,并添加另一个keyadapter类以接收键事件。我也有主要的函数来测试代码。当从main运行时,表单将显示并接收关键事件。 现在我创建了另一个扩展jframe并实现keylistener以接收这种形式的事件的类。 在第二个类中完成功能后,我想关闭第二个表单并显示第一个表单。当从第二个类中的键事件函数