Bagaimana Anda menambahkan ActionListener ke JButton di Java

private JButton jBtnDrawCircle = new JButton("Circle");
private JButton jBtnDrawSquare = new JButton("Square");
private JButton jBtnDrawTriangle = new JButton("Triangle");
private JButton jBtnSelection = new JButton("Selection");

Bagaimana cara menambahkan pendengar aksi ke tombol-tombol ini, sehingga dari metode utama saya dapat memanggil actionperformed pada tombol-tombol tersebut, sehingga ketika tombol-tombol tersebut diklik saya dapat memanggilnya dalam program saya?

Dua cara:

  1. Implementasikan ActionListener di kelas Anda, lalu gunakan jBtnSelection.addActionListener(this); Nantinya, Anda harus mendefinisikan metode, public void actionPerformed(ActionEvent e). Namun, melakukan hal ini untuk beberapa tombol dapat membingungkan, karena metode actionPerformed harus memeriksa sumber dari setiap event (e.getSource()) untuk melihat dari tombol mana event itu berasal.

  2. Gunakan kelas dalam anonim:

    jBtnSelection.addActionListener(new ActionListener() {
    public void actionPerformed(ActionEvent e) {
     pemilihanTombolTekan();
    }
    } );
    Nanti, Anda harus mendefinisikan selectionButtonPressed(). Ini bekerja lebih baik ketika Anda memiliki beberapa tombol, karena pemanggilan Anda ke metode individual untuk menangani aksi berada tepat di sebelah definisi tombol.

Metode kedua juga memungkinkan Anda untuk memanggil metode pemilihan secara langsung. Dalam hal ini, Anda bisa memanggil selectionButtonPressed() jika beberapa aksi lain juga terjadi - seperti, ketika timer berbunyi atau semacamnya (tetapi dalam hal ini, metode Anda akan dinamai sesuatu yang berbeda, mungkin selectionChanged()).

Komentar (7)

Cara terbaik Anda adalah meninjau tutorial Java Swing, khususnya tutorial tentang Tombol.

Potongan kode singkatnya adalah:

jBtnDrawCircle.addActionListener( /*class that implements ActionListener*/ );
Komentar (0)

Saya tidak sepenuhnya mengikuti, tetapi untuk menambahkan action listener, Anda cukup memanggil addActionListener (dari Abstract Button). Jika ini tidak sepenuhnya menjawab pertanyaan Anda, dapatkah Anda memberikan beberapa detail lebih lanjut?

Komentar (0)