gpt4 book ai didi

java - 向按钮添加两个 Action 监听器似乎不起作用

转载 作者:行者123 更新时间:2023-11-29 06:00:53 24 4
gpt4 key购买 nike

我有以下简单的代码:

button.addActionListener(new ComeOnListener(jTextArea1));
button.addActionListener(new ComeOnListener(jTextArea2));

ComeOnListener 是作为一个私有(private)类实现的(尝试将其实现为匿名在语法上有些困惑)并且附加了“Come on!”在它作为参数接收的文本区域上。尽管如此,它只是将它附加到 jTextArea2 上,完全忽略了 jTextArea1。听众如下:

private class ComeOnListener implements ActionListener {

JTextArea auxTextArea;

public ComeOnListener(JTextArea jta) {

auxTextArea = jta;

}

@Override
public void actionPerformed(ActionEvent e) {

auxTextArea.append("¡Come on!");
//throw new UnsupportedOperationException("Not supported yet.");
}


}

谁能告诉我发生了什么事吗?

非常感谢。

最佳答案

一如既往,您应该发布 SSCCE .这是一段显示所需功能的工作代码

import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JTextArea;
import java.awt.BorderLayout;
import java.awt.EventQueue;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

public class AppendTextArea {

public static void main( String[] args ) {
EventQueue.invokeLater( new Runnable() {
@Override
public void run() {
JFrame frame = createUI();
frame.setDefaultCloseOperation( JFrame.EXIT_ON_CLOSE );
frame.pack();
frame.setVisible( true );
}
} );
}
private static JFrame createUI(){
JFrame result = new JFrame( "TestFrame" );
JTextArea firstArea = new JTextArea( 30, 30 );
JTextArea secondArea = new JTextArea( 30,30 );
JButton appendButton = new JButton( "Append" );
appendButton.addActionListener( new ComeOnListener( firstArea ) );
appendButton.addActionListener( new ComeOnListener( secondArea ) );

result.add( firstArea, BorderLayout.NORTH );
result.add( secondArea, BorderLayout.CENTER );
result.add( appendButton, BorderLayout.SOUTH );

return result;
}
private static class ComeOnListener implements ActionListener {
private final JTextArea auxTextArea;
public ComeOnListener(JTextArea jta) {
auxTextArea = jta;
}
@Override
public void actionPerformed(ActionEvent e) {
auxTextArea.append("Come on!");
}
}
}

如您所见,您发布的代码只是复制到此代码段中并按预期工作。问题很可能出在代码的其他地方。

关于java - 向按钮添加两个 Action 监听器似乎不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10131968/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com