Java按钮做同样的事情,我该如何改变呢?

时间:2011-02-19 04:51:35

标签: java swing awt

好吧,我有一个带有两个按钮和一个屏幕的简单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");

 }
}

3 个答案:

答案 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()。但这是一种测试点击按钮的简单方法;)