好吧,我有一个带有两个按钮和一个屏幕的简单java小程序。两个按钮都做同样的事情。我想改变这个。我无法找到更改按下任一按钮时执行的操作的内容。他们都是同一件事,我不想要这个。所以我的问题是如何更改“库存”按钮以显示“Hello world”而不是行数?
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.*;
public class projectApplet extends JApplet implements ActionListener
{
/**
*
*/
private static final long serialVersionUID = 1L;
private JTextArea textArea;
private int lineNumber = 0; // this is just to test
public void init() {
JPanel panel = new JPanel();
textArea = new JTextArea();
textArea.setBackground(Color.BLACK);
textArea.setForeground(Color.WHITE);
JScrollPane sp = new JScrollPane(textArea);
panel.add(sp);
Container window = getContentPane();
window.setLayout(new BorderLayout());
window.add(sp,BorderLayout.CENTER);
// this is just to test------------------
JButton b = new JButton("Clik to add a line");
b.addActionListener(this);
window.add(b, BorderLayout.SOUTH);
JButton inventory = new JButton("Inventory");
inventory.addActionListener(this);
window.add(inventory, BorderLayout.NORTH);
//---------------------------------------
}
public void actionPerformed(ActionEvent arg0) {
lineNumber++;
textArea.append("\nLine number: " + lineNumber);
}
public void actionPerformed1(ActionEvent arg0) {
lineNumber++;
textArea.append("RPFL");
}
}
答案 0 :(得分:2)
为其添加新的动作侦听器。通常,您可以使用匿名内部类:
inventory.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent ae) {
textArea.append("Hello, world");
}
});
答案 1 :(得分:0)
您无法在执行操作的方法中执行arg0.getSOurce()
以检查哪个按钮生成了此事件。
答案 2 :(得分:0)
只需拥有一个actionPerformed方法,然后找出触发它的按钮。
例如:
public void actionPerformed(ActionEvent arg0) {
if(arg0.getLabel()=="Inventory") // Do the following
if(arg0.getLabel()=="Click to add a new line") // Do the following
}
注意,不推荐使用getLabel()方法,所以你必须使用另一个...不记得我应该记住你应该...但也许getName()。但这是一种测试点击按钮的简单方法;)