» »

java, Swing in vmesnik ActionListener

java, Swing in vmesnik ActionListener

marjan_h ::

Malo se igram z grafičnim uporabniškim vmesnikom,(Swing) pa me zanima če kdo ve; Kako ločiš dogodke med seboj?

Trenutno imam dva gumba, in ko kliknem prvega se izpiše "Kliknil si me", in ko drugega enako. Kako ločiš dogodka; Ko klikneš prvega je en dogodek, ko drugega drug.

Imam sledečo kodo:

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

class Primer extends JFrame implements ActionListener{
    JButton button1, button2;
    
    public Primer(){
        super("Okno");
        Container vsebnik = getContentPane();
        vsebnik.setLayout(null);
        
        button1 = new JButton("Klik 1");
        button2 = new JButton("Klik 2");
        
        button1.addActionListener(this);
        button2.addActionListener(this);
        
        button1.setBounds(20, 20, 100, 40);
        button2.setBounds(140,20,100,40);
        
        vsebnik.add(button1);
        vsebnik.add(button2);
    }
    public void actionPerformed(ActionEvent e){
        System.out.println("Kliknil si me");
    }
}

public class SwingTest{
    
    
    public static void main (String args[]){
        JFrame frame = new Primer();
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        frame.setSize(500, 500);
        frame.setVisible(true);
    }
      
}

Mavrik ::

Tipično se to naredi tak, da na vsakega daš drug ActionListener. Lahko pa tudi pogledaš ActionEvent.source v actionPerformed, sam to ti bo naredilo špagetasto kodo.
The truth is rarely pure and never simple.

marjan_h ::

Ne razumem čist dobr. Ali moram narediti nov class pa implementirat ActionListener, potem pa to uporabiti kot nov ActionListener, recimo kot ActionListener2?

Zgodovina sprememb…

  • spremenil: marjan_h ()

marjan_h ::

Sedaj sem takole naredil, kot si rekel in dela.

    public void actionPerformed(ActionEvent e){
        if (e.getSource().equals(button1))
            System.out.println("Kliknil si me");
        else if(e.getSource().equals(button2))
            System.out.println("Klikni si me drugic");
    }

Tisto, da pa daš drug ActionListener pa ne vem točno kaj si mislil.

Mavrik ::

Drugo. Instanco. Objekta.


button1.addActionListener(new Actionlistener() {
    public void actionPerformed(ActionEvent e){
        System.out.println("Aua!");
    }
};

button2.addActionListener(new Actionlistener() {
    public void actionPerformed(ActionEvent e){
        System.out.println("Ma nehi no!");
    }
};

The truth is rarely pure and never simple.

marjan_h ::

aha, tako si mislil. Hvala za odgovor.


Vredno ogleda ...

TemaSporočilaOglediZadnje sporočilo
TemaSporočilaOglediZadnje sporočilo
»

[java] Osnovna vprašanja

Oddelek: Programiranje
372477 (1484) killa bee
»

4 v vrsto [java pomoč]

Oddelek: Programiranje
81375 (1202) Spura
»

java pomoč, verjetno event handler

Oddelek: Programiranje
12982 (815) Chandler258
»

[Java] ActionListener, Button

Oddelek: Programiranje
61258 (1081) fiction
»

[Java] Zmešnjava

Oddelek: Programiranje
461973 (1478) ]Fusion[

Več podobnih tem