Кнопка Java делает то же самое, как мне это изменить? - PullRequest
1 голос
/ 19 февраля 2011

Хорошо, у меня есть простой 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 ]

2 голосов
/ 19 февраля 2011

Добавить новый слушатель действия к нему. Обычно вы можете использовать анонимный внутренний класс:

inventory.addActionListener(new ActionListener() {
  @Override
  public void actionPerformed(ActionEvent ae) {
    textArea.append("Hello, world");
  }
});
0 голосов
/ 19 февраля 2011

Просто используйте один метод 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 (). Но это простой способ проверить, какая кнопка была нажата;)

0 голосов
/ 19 февраля 2011

Вы не можете сделать arg0.getSOurce() внутри метода выполненного действия, чтобы проверить, какая кнопка сгенерировала это событие.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...