Kezdőoldal » Számítástechnika » Programozás » Java Mouselistener Külön class?

Java Mouselistener Külön class?

Figyelt kérdés

Sziasztok!


Az lenne a kérdésem, hogy hogy lehet megoldani, hogy egy külön mouselistener osztályban okoskodjak a mouselistenerrel?


Tehát:


Van egy gui osztályom amely megcsinálja az ablakot, de nem akarom hogy ez a gui osztály implementálja a MouseListenert, hanem azt szeretném, hogy mondjuk Eger nevű osztály implementálja.


A kérdés, hogy a külső osztályban ahol van MouseListener hogy érem el a Gui osztályban definiált gombokat?



2014. jan. 8. 20:41
 1/9 anonim ***** válasza:

Úgy, hogy átadod neki a Gui-t:


public class Eger implements MouseListener {

private Gui gui;

public Eger(Gui gui) { this.gui=gui; }

}


Ha Gui-ban hozod létre, akkor: new Eger(this);

2014. jan. 8. 22:14
Hasznos számodra ez a válasz?
 2/9 A kérdező kommentje:
Köszi!
2014. jan. 8. 23:59
 3/9 A kérdező kommentje:
Viszont az Eger osztályom honnan tudja majd, hogy melyik JButton-ra kattintottak?
2014. jan. 9. 00:41
 4/9 anonim ***** válasza:

Nem tudom, én nem használtam MouseListener-t soha. Nézd meg a doksiját, hátha van benne valami sender objektum. Ha nincs, akkor a pozíciók alapján.


De JButton-okat nem MouseListener-rel szokás kezelni, hanem ActionListener-rel:

[link]

2014. jan. 9. 10:59
Hasznos számodra ez a válasz?
 5/9 A kérdező kommentje:

button.addActionListener(new Akciok(button));

___|||___|||__||__||__



package al;


import java.awt.event.ActionEvent;

import java.awt.event.ActionListener;

import javax.swing.JButton;


public class Akciok implements ActionListener{

JButton button;


public Akciok(JButton button){

this.button = button;

}

@Override

public void actionPerformed(ActionEvent e) {

button.setText("Háj");

}


}


Végül így csináltam meg. Ez elfogadható?

2014. jan. 13. 00:49
 6/9 A kérdező kommentje:
Jah működik amúgy :)
2014. jan. 13. 00:49
 7/9 anonim ***** válasza:
Szép, ez teljesen jó. :) Pláne, ha működik. :)
2014. jan. 13. 09:42
Hasznos számodra ez a válasz?
 8/9 A kérdező kommentje:

Ha több gomb van akkor megoldhatom úgy, hogy agomboknak adok egy számot és a fent említett módszert kibővítem if függvényekkel az actionperformed-ben, hogy ne az összes gomb írja át a szövegét arra, hogy Háj hanem mindegyik függetlenül viselkedjen?

Telóról vagyok érthető remélem amit írok :|

2014. jan. 13. 13:58
 9/9 anonim ***** válasza:
Érthető, ja. :) Megoldhatod persze, kérdés, hogy a JButton-ban hol tárolod el a számot. A gomb feliratában lehet esetleg, de ha nem akarod hogy látszódjon, akkor: a JButton-ból származtatsz egy saját MyJButton osztályt, ami csak annyit csinál, hogy hozzáad a JButton-hoz egy azonosítószámot. Az Akcio-dban meg nem JButton-t tárolsz, hanem MyJButton-t és ezen azonosítószám alapján már tudsz if-ekkel dönteni. :)
2014. jan. 13. 14:26
Hasznos számodra ez a válasz?

Kapcsolódó kérdések:




Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu

A weboldalon megjelenő anyagok nem minősülnek szerkesztői tartalomnak, előzetes ellenőrzésen nem esnek át, az üzemeltető véleményét nem tükrözik.
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!