Noah R
Noah R

Reputation: 5477

Java button do the same thing, how do I change this?

Alright, I have a simple java applet with two buttons and a screen. Both the buttons do the same thing. I want to change this. I can't find what it is that changes the action that is performed when either one of the buttons is pressed. They both to the same thing and I don't want this. So my question is how would I change the Inventory button to display "Hello world" instead of a line count?

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");

 }
}

Upvotes: 1

Views: 2025

Answers (3)

sashank
sashank

Reputation: 1541

You can't do arg0.getSOurce() inside the action performed method to checkout which button has generated this event.

Upvotes: 0

Ben
Ben

Reputation: 321

Just have the one actionPerformed method and then find out which button triggered it.

For example:

public void actionPerformed(ActionEvent arg0) {
    if(arg0.getLabel()=="Inventory") // Do the following
    if(arg0.getLabel()=="Click to add a new line") // Do the following
}

Note, getLabel() method is deprecated so you'll have to use another... can't remember off the top of my head which you should though... maybe getName(). But this is a simple way to test which button was clicked ;)

Upvotes: 0

sjr
sjr

Reputation: 9875

Add a new action listener to it. Typically you can use an anonymous inner class:

inventory.addActionListener(new ActionListener() {
  @Override
  public void actionPerformed(ActionEvent ae) {
    textArea.append("Hello, world");
  }
});

Upvotes: 2

Related Questions