Rozróżnienie zdarzeń

0

Witam, jestem początkujący w Javie, więc proszę o łopatologiczne odpowiedzi :)
Tak więc do rzeczy:
Napisałem taką prostą aplikację, w skład której wchodzą dwa przyciski. Po kliknięciu na którykolwiek z nich program się wyłącza.

import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import javax.swing.border.*;


public class Main {
    public static void main(String[] args) {
        Okno okno = new Okno();
    }
}


class Okno extends JFrame implements ActionListener {
    public Okno(){
        setTitle("Moja pierwsza aplikacja okienkowa w Javie");
        setSize(500, 350);
        
        JPanel panel = new JPanel();
        JButton button = new JButton("Kliknij na mnie");
        button.addActionListener(this);
        panel.add(button);

        JButton button2 = new JButton("2");
        button2.addActionListener(this);
        panel.add(button2);

        getContentPane().add(panel);

        setLocationRelativeTo(null);
        setVisible(true);
    }

    public void actionPerformed(ActionEvent ae){
           System.exit(0);
    }
}

Chciałem zrobić tak, aby po kliknięciu w przycisk "2" program się nie wyłączał (po prostu, żeby nie wykonywał żadnej akcji).
Teraz moje pytanie: w jaki sposób mogę zorientować się, który przycisk został użyty?

Pozdrawiam :)

1
  1. sposób: możesz sprawdzać, czy ae.getSource() == button / button2, ale do tego musisz posiadać referencje do buttonów w actionPerformed().
  2. sposób: możesz ustawić actionCommand buttonom (button.setActionCommand("exit"); button2.setActionCommand("donothing");) i potem sprawdzać, czy "exit".equals(ae.getActionCommand()) / "donothing".equals(ae.getActionCommand()).
0

Sposób 2a (nie musisz wywoływać setActionCommand())

    if(ae.getActionCommand().equals("Kliknij na mnie"))
    {
        System.exit(0);
    }

1 użytkowników online, w tym zalogowanych: 0, gości: 1