M
mabe
Gast
Hallo!
Da ich noch ein ziemlicher Anfänger in Sachen Java/Swing bin, mir meine Java-Bücher nicht weiterhelfen konnten und ich auch schon Stunden im Internet verbracht habe, um die Lösung zu finden, hoffe ich nun, dass ich hier die Antwort auf mein Problem finde.
Ich habe folgendes Problem:
Ich füge eine Klasse (JPanel) in mein "Programm" ein, auf dem sich zwei Buttons befinden. So weit, so gut. Doch wie kann ich nun aus meinem "Programm" prüfen, ob ein Button dieser Klasse gedrückt wurde.
(So wie in meinem beigefügten Quellcode sollte die Geschichte in etwa aussehen, nur möchte ich in der Klasse "Klassen" prüfen, ob ein Button gedrückt wurde, und nicht in der Klasse "Buttons")
Die "Buttons"-Klasse soll später eine eigene Datei werden, die universell verwendet werden kann
Da ich noch ein ziemlicher Anfänger in Sachen Java/Swing bin, mir meine Java-Bücher nicht weiterhelfen konnten und ich auch schon Stunden im Internet verbracht habe, um die Lösung zu finden, hoffe ich nun, dass ich hier die Antwort auf mein Problem finde.
Ich habe folgendes Problem:
Ich füge eine Klasse (JPanel) in mein "Programm" ein, auf dem sich zwei Buttons befinden. So weit, so gut. Doch wie kann ich nun aus meinem "Programm" prüfen, ob ein Button dieser Klasse gedrückt wurde.
(So wie in meinem beigefügten Quellcode sollte die Geschichte in etwa aussehen, nur möchte ich in der Klasse "Klassen" prüfen, ob ein Button gedrückt wurde, und nicht in der Klasse "Buttons")
Die "Buttons"-Klasse soll später eine eigene Datei werden, die universell verwendet werden kann
Code:
import java.awt.*;
import javax.swing.*;
import java.awt.event.*;
public class Klassen
{
static JFrame frame;
static Buttons button;
public static void main(String[] args)
{
frame = new JFrame("Mehrere Klassen");
button = new Buttons();
frame.getContentPane().add(button);
frame.pack();
frame.setSize(300,80);
frame.setVisible(true);
}
/*In dieser Klasse ('Klassen') möchte ich prüfen,
ob ein Button gedrückt wurde.
Leider schaffe ich es nur in der 'Buttons'-Klasse.
Ich könnte mir vorstellen, dass ich auch hier
einen Listener definieren muss. Da 'button' aber
ein JPanel und kein JButton ist, weiß ich nicht,
was ich "lauschen" soll.
Etwa so:
wenn button1 oder button2 gedrückt:
System.exit(0);
*/
}
class Buttons extends JPanel
{
Buttons()
{
setLayout(new FlowLayout());
JButton button1 = new JButton("Button 1");
JButton button2 = new JButton("Button 2");
add(button1);
add(button2);
button1.addActionListener(new ButtonLauscher());
button2.addActionListener(new ButtonLauscher());
}
class ButtonLauscher implements ActionListener
{
public void actionPerformed(ActionEvent e)
{
System.out.println(e.getActionCommand());
}
}
}