Methode aufrufen beim Drücken eines Buttons im Boxlayout

Hobbit9797

Mitglied
Ich will eine Methode aufrufen wenn ich einen Button drücke.
Ich benutze das BoxLayout.
Mit Actionlistener bekommen ich es nicht hin.
Es wäre sehr nett von euch wenn ihr mir eine kleine Hilfestellung geben könntet.
 
Das Layout ist dafür egal. Wie sieht denn dein Code aus? Hast du den ActionListener auch dem Button hinzugefügt? Hast du ein ActionCommand gesetzt und fragst in der actionPerformed-Methode nach dem selben Wort?
 
Java:
import javax.swing.*;
import java.awt.Dimension;
import java.awt.event.*;
 
public class Hex extends JFrame 
{
    

    
    public Hex() 
    {
        initComponents();
        setLayout(new BoxLayout(getContentPane(), BoxLayout.Y_AXIS));
        Box controlBox = Box.createHorizontalBox(); 
        controlBox.add(new JButton("Berechnen")); 
        add(controlBox);
    }
 
    private void initComponents()
    {
    	setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        setTitle("Hexrechner");  
        pack();
        setSize(400,200);                                                                  
        setVisible(true);                            
        
    }
 
    
}

Das ist mein Code.
Ich weiß, dass da noch keine Listener und so drin sind.
 
Auch wenn du scheinbar dein Problem gelöst hast möchte ich dir erklären WARUM du es so wie du es versucht hast nicht hinbekommen hast :

Java:
controlBox.add(new JButton(String));
Du hast ein anonymes Objekt verwendet ... damit geht das nicht.
Der Name sagt es eigentlich schon : anonym ... und ein Objekt ist genau dann ein anonymes Objekt wenn es keine User-Referenzen gibt ... das Objekt also nur durch die Java-internen Referenzen ansprechbar ist.

Du brauchst also eine Referenz auf den JButton um diesem einen Listener zu adden.
Das geht dann entweder mit einer Member-Variable oder du holst dir die Objekte mit Container.getComponents() *oder so änlich* und erhälts dadurch dann eine User-Referenz.
 

Zurück
Oben