actionPerformed funktioniert nicht

Status
Nicht offen für weitere Antworten.
I

ioannis

Gast
Hallo,

ich habe folgenden code,
Code:
/ Create an action
        Action action = new AbstractAction("Start") { 

        // This method is called when the button is pressed
        public void actionPerformed(ActionEvent evt) {
          TotalCountPanel panel = new TotalCountPanel();
          frame.getContentPane().add(panel, BorderLayout.CENTER);
        }

und die Klasse die ich aufrufen will ist folgende
Code:
 class TotalCountPanel extends JPanel 
   {
       public void paintComponent(Graphics g)
       {
           super.paintComponent(g);
           g.drawString("Hallo", MESSAGE_X, MESSAGE_Y);
       }
       public static final int MESSAGE_X=150;
       public static final int MESSAGE_Y=150;
   }

nun die übergabe an das JFrame will nicht funktionieren und ich weiß nicht warum. Kann mir da jemand weiterhelfen. WEnn ich den Klassenaufruf vor dem Action Action Befehl eingebe funktioniert die Ausgabe! Was mache ich falsch?

Grüße

Ioannis
 
S

SlaterB

Gast
validate();
fehlt

Code:
public class TestGUI
    extends JFrame
{

    public TestGUI()
        throws Exception
    {
        JButton b = new JButton("Start");
        b.addActionListener(new ActionListener()
            {
                public void actionPerformed(ActionEvent evt)
                {
                    TotalCountPanel panel = new TotalCountPanel();
                    getContentPane().add(panel, BorderLayout.CENTER);
                    validate();
                }
            });
        getContentPane().add(b, BorderLayout.NORTH);

        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        setSize(800, 400);
        setVisible(true);
    }

    public static void main(String[] args)
        throws Exception
    {
        new TestGUI();
    }
}


class TotalCountPanel
    extends JPanel
{
    public void paintComponent(Graphics g)
    {
        super.paintComponent(g);
        g.drawString("Hallo", 150, 150);
    }
}
 
I

ioannis

Gast
Hallo,

ich weiß zwar nicht wie und warum aber jetzt funktioniert es!

Danke
 

licht400

Bekanntes Mitglied
Hallo,
habe auch ein kleine ActionPerformed Problem!
Habe ein Programm was schon lief, aber ich jetz in klassen abgeändert habe.
Da habe ich eine Klasse Aktionen wo der actionPerformed und der valueChanged vorhanden sind.
Dieser valueChanged funktioniert, aber meine actionPeformed leider nicht..sprich, es reagiert kein button.

die action liegt in der klasse a!
Code:
 public void actionPerformed(ActionEvent e) {
        
        //close
        Object quelle = e.getSource();
        if (quelle == d.bitem){
            if (JOptionPane.showConfirmDialog(this, "Möchten Sie wirklich aufhören","Frage",
                    JOptionPane.YES_NO_OPTION, JOptionPane.QUESTION_MESSAGE)
                    == JOptionPane.YES_OPTION) {
                    System.exit(0);
                    }
}

dieser button liegt in der klasse d (wie design) und habe ihm auch dem actionListener übergeben. wieso reagiert er aber nicht?
 
S

SlaterB

Gast
zum einen, weil er aus 10 Zeilen unsäglich komischen Code besteht,
zur Frage, ob ein ActionListener funktioniert, gibt es nur eine Art von actionPerformed-Operationen:

public void actionPerformed(ActionEvent e) {
System.out.println("funktioniert");
}


alles andere stört nur,

----------

so, wenn diese Meldung kommt, dann funktionierts, ansonsten nicht,
aber an der actionPerformed kann es dann nicht mehr liegen,
muss wohl mehr Code posten ;), am besten ein vollständiges Beispielprogramm < 100 Zeilen

falls die Meldung schon kommt, aber dein ursprünglicher ActionListener nicht geht,
dann wahrscheinlich, weil e.getSource() doch nicht das ist was du vermutest,
gib von beiden Objekten den hashcode() aus, vielleicht ist die Exemplarvariable gar null?
wo wird sie gesetzt?
 

licht400

Bekanntes Mitglied
da er mir nix ausgibt, wenn ich system.out.println("funkst") mache, gehe ich von aus, das die actionPerformed nix macht.

so..habe 2 klassen...einmal design und einmal die aktionen.

aktionen

Code:
public class aktionen extends JFrame implements ActionListener{
private design d;

  public void init(design d){  //die init wird in der main aufgerufen
        this.d=d;
      }

 public void actionPerformed(ActionEvent e) {
        System.out.println("funkst");
        //close
        //.....ist ja erstmal egal...hier wäre dann der zugriff auf bitem zum beispiel
}
}

design

Code:
public class design extends JFrame {

private aktionen a;

 public void init(aktionen a){
        this.a=a;        
    }
public design(){

//Menu
        menuBar = new JMenuBar();
        menu = new JMenu("suchen");
        menuBar.setLayout(new BorderLayout());
        menuBar.add(menu);
        sitem = new JMenuItem("suchen");
        bitem = new JMenuItem("beenden");
        menu.add(sitem);
        menu.add(bitem);
        
        menuBar.add(menu, BorderLayout.EAST);
        setJMenuBar(menuBar);
        bitem.addActionListener(a);
        sitem.addActionListener(a);
//...

}
}

so hat es ja schon mal funktioniert, bevor ich das ganze in klassen gemacht habe ;-)!
 
S

SlaterB

Gast
ach du Schande, das aktionen-design-tree-Trauma..

du hast wie immer
bitem.addActionListener(a);
im Konstruktor, wobei a noch null ist und doch erst SPÄTER in der init()-Operation gesetzt wird,
a ist im Konstruktor noch NULL, glaub das doch endlich mal,

und ist so leicht zu prüfen:
statt
bitem.addActionListener(a);

schreibe

System.out.println("a ist: "+a);
bitem.addActionListener(a);

wieso schaffst du es nie, so eine kleine Ausgabe einzubauen?
na dir ist wohl nicht mehr zu helfen..
 

licht400

Bekanntes Mitglied
das dieser leer ist, ist mir ja bewusst, da er nicht reagiert und vorher es funktioniert hat.
aber wenn mein listener nun mal in a ist, muss ich denn ja mit a weiter geben..
so habe ich es eigentlich schon mal woanders gemacht!
 

licht400

Bekanntes Mitglied
wie übergebe ich dem button nun dann den actionlistener, da a ja eh null ist
edit: ja bin in dieser sache vll schwer von begriff, aber könntest mir sagen, wie ich der komponente den actionlistener zuweise, ohne das dieser null ist?
 
S

SlaterB

Gast
wie schon tausendmal gesagt:
jeder Code der a benötigt darf nicht im Konstruktor stehen,
sondern erst in init() wenn a da ist!

gaaaanz einfach,
kaufe nie im Supermarkt ein bevor du das Geld vom Bankautomaten abgehoben hast/ Taschengeld von Eltern bekommen hast?

---------

wahrscheinlich solltest du einfach das Themal init() ein für alle mal begraben und wieder zu ordentlichen ganz normalen Konstruktoren mit Parametern zurückkehren,
im damaligen Thread habe ich dir ja die richtige Reihenfolge vorgeschlagen
 

licht400

Bekanntes Mitglied
gut, ich möcht es aber gern mit dem init machen.

gut, wenn das a drine steht, funktioniert es nicht, da zu dem zeitpunkt a null ist.
hab ausporbiert new aktionen() , statt a..da geht zumindest die performed wieder, aber bekomm dann bei meinen buttons ein nullpointer..

also kannst mir da jetz keine lösung sagen, wie ich dem bitem den actionlistener hinzufüge (auch wenn ich mich gerade vll blöd stelle)
 
S

SlaterB

Gast
new aktionen() statt a wäre fatal, darum gehts doch die ganze Zeit bei init(),
dass du nur ein Objekt a hast usw.

> also kannst mir da jetz keine lösung sagen, wie ich dem bitem den actionlistener hinzufüge

habe ich schon längst, schon zig mal, immer das gleiche Problem, IMMER die gleiche Lösung:

SlaterB hat gesagt.:
jeder Code der a benötigt darf nicht im Konstruktor stehen,
sondern erst in init() wenn a da ist!

alles rein in init, aber nicht als Komplettlösung sehen, kann auch zu anderen Problemen führen,
wie bei den JPanels in einem der anderen Threads

nach Möglichkeit also allen Code, der nicht von einer der init-Variablen abhängt, im Konstruktor,
der Rest dann in init,

Code:
public design(){ 

//Menu 
        menuBar = new JMenuBar(); 
        menu = new JMenu("suchen"); 
        menuBar.setLayout(new BorderLayout()); 
        menuBar.add(menu); 
        sitem = new JMenuItem("suchen"); 
        bitem = new JMenuItem("beenden"); 
        menu.add(sitem); 
        menu.add(bitem); 
        
        menuBar.add(menu, BorderLayout.EAST); 
        setJMenuBar(menuBar); 
//... 

} 

public void init(aktionen a){ 
        this.a=a;        

        bitem.addActionListener(a); 
        sitem.addActionListener(a); 

    }
 

licht400

Bekanntes Mitglied
sprich, wenn ich was aus der klasse benötige wie den actionlistener muss ich das in die init schreiben!

danke, hat geklappt und ich glaube mir ist jetz ein licht aufgegangen ;-)!
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
R actionPerformed wird nicht ausgeführt Java Basics - Anfänger-Themen 5
F actionPerformed() zur richtigen Zeit Java Basics - Anfänger-Themen 6
D JLabel ändern in actionperformed Java Basics - Anfänger-Themen 2
D KeyListener nicht mehr aktiv nach ActionPerformed Java Basics - Anfänger-Themen 2
S Wie werte vergleichen, die in actionPerformed-Methode hängen ? Java Basics - Anfänger-Themen 4
M Threads Thread.Sleep Problem im Zusammenhang mit GUI/ActionPerformed-Methode Java Basics - Anfänger-Themen 4
J In actionPerformed Zugriff auf öffentlich Methoden der Klasse Java Basics - Anfänger-Themen 4
Z Kann actionPerformed(ActionEvent) nicht überschreiben Java Basics - Anfänger-Themen 8
J Werte an Methode übergeben und gleichzeitig ActionPerformed einbeziehen. Java Basics - Anfänger-Themen 14
M OOP ActionPerformed Methode aus anderer AP aufrufen? Java Basics - Anfänger-Themen 5
M Variablen via actionPerformed mit Buttons ändern Java Basics - Anfänger-Themen 7
R Wie es anstellen das ActionPerformed einen Wert zurückgibt? Java Basics - Anfänger-Themen 8
S Objekt an actionPerformed Methode übergeben Java Basics - Anfänger-Themen 7
A lokale Variable innerhalb "actionPerformed()" Java Basics - Anfänger-Themen 10
S actionPerformed(ActionEvent ev) Java Basics - Anfänger-Themen 4
Houly while Schleife im ActionPerformed Event Java Basics - Anfänger-Themen 8
R ActionPerformed: Methode ausführen Java Basics - Anfänger-Themen 3
0 Fehlermeldung: SteuerungsPanel$ButtonHandler.actionPerformed(Steu erungsPanel.java: Java Basics - Anfänger-Themen 2
R Thread in ActionPerformed-Methode unbekannt? Java Basics - Anfänger-Themen 4
R Wie getText mit actionPerformed verwenden? Java Basics - Anfänger-Themen 3
C actionPerformed(null) Java Basics - Anfänger-Themen 6
D Auf Buttondruck (actionperformed) painten Java Basics - Anfänger-Themen 5
H Frage zur Methode: actionPerformed Java Basics - Anfänger-Themen 2
A ActionPerformed Methode ohne Rückgabewert Java Basics - Anfänger-Themen 12
DeeDee0815 JRadioButton, actionPerformed und Textfelder Java Basics - Anfänger-Themen 2
B Exception Handling in der ActionPerformed-Methode Java Basics - Anfänger-Themen 7
S Java GUI: Probleme mit EventListener und actionPerformed Java Basics - Anfänger-Themen 3
B actionPerformed und ComboBoxen Java Basics - Anfänger-Themen 7
J JMenu + ActionPerformed + ConntentPane Java Basics - Anfänger-Themen 4
D Fehlersuche actionPerformed Java Basics - Anfänger-Themen 6
S actionPerformed und JCheckBox Java Basics - Anfänger-Themen 4
N ActionListener - ActionPerformed - if soure= .... Java Basics - Anfänger-Themen 6
M Übergeben einer Variable an actionPerformed(ActionEvent e)? Java Basics - Anfänger-Themen 5
U actionPerformed - Source verständlich Java Basics - Anfänger-Themen 8
C Problem mit actionPerformed Java Basics - Anfänger-Themen 4
I Webservice funktioniert nicht Java Basics - Anfänger-Themen 5
C Abbruch einer Schleife mit break, meine Übung funktioniert nicht richtig Java Basics - Anfänger-Themen 4
S Erstes Programm: Hallo Welt funktioniert nicht. Java Basics - Anfänger-Themen 3
J Datenüberwachung funktioniert nicht Java Basics - Anfänger-Themen 9
mo13 JTextField funktioniert nicht Java Basics - Anfänger-Themen 4
J .jar datei öffnen funktioniert nicht Java Basics - Anfänger-Themen 17
G Mit jPackage erstellte EXE funktioniert nicht Java Basics - Anfänger-Themen 2
G Robot funktioniert nicht bei SelectionListener Java Basics - Anfänger-Themen 6
R RegEx funktioniert nicht Java Basics - Anfänger-Themen 14
S 2 Reihen ratio-btn, eine Reihe funktioniert andere nicht Java Basics - Anfänger-Themen 4
monsterherz Punkt Notation funktioniert nicht Java Basics - Anfänger-Themen 4
N Programm Funktioniert mit .txt Datei aber nicht mit .rtf Datei Java Basics - Anfänger-Themen 2
D Quellcode für cmd funktioniert nicht Java Basics - Anfänger-Themen 9
ms_cikar Bin to Float convertieren funktioniert nicht Java Basics - Anfänger-Themen 24
B Schrankensystem mit Farberkennung für Flashgame funktioniert nicht wie geplant Java Basics - Anfänger-Themen 4
I Greenscreen, funktioniert nicht zu 100%... nicht alle Pixel werden geändert Java Basics - Anfänger-Themen 1
JordenJost char variable funktioniert irgendwie nicht a+b ergibt nicht à Java Basics - Anfänger-Themen 4
M Operatoren Strings mit Vergleichsoperatoren, funktioniert das? Java Basics - Anfänger-Themen 9
Garrit1994 Continue funktioniert nicht wie geplant Java Basics - Anfänger-Themen 4
B Methoden Übergebe Variabel funktioniert nicht Java Basics - Anfänger-Themen 17
P exportiertes Programm funktioniert nur teilweise Java Basics - Anfänger-Themen 7
Agent4nobody Programmstart durch aufruf des interpreters funktioniert nicht Java Basics - Anfänger-Themen 14
Fugover Programm funktioniert nicht Java Basics - Anfänger-Themen 11
X Datentypen String.equals funktioniert nicht Java Basics - Anfänger-Themen 5
berserkerdq2 wie funktioniert contenthandler, was muss ich bei der Methode startElement und endElement tun? Java Basics - Anfänger-Themen 11
Alen123 Warum funktioniert mein Code nicht? Java Basics - Anfänger-Themen 64
sserio Array funktioniert nicht Java Basics - Anfänger-Themen 2
sserio Wieso funktioniert mein Programm nicht Java Basics - Anfänger-Themen 2
A String split funktioniert nicht, wenn mehr als 1 Ziffer vor dem Zeichen steht nach dem er trennen soll? Java Basics - Anfänger-Themen 4
sserio Größtes Palindrom-Produkt Programm funktioniert nur halb Java Basics - Anfänger-Themen 23
sserio Rekursion größten Primfaktor finden funktioniert nicht Java Basics - Anfänger-Themen 8
sserio Wieso funktioniert mein TableView nicht /JavaFX. Java Basics - Anfänger-Themen 4
Avalon Warum funktioniert eine Bedingung und eine andere nicht? Java Basics - Anfänger-Themen 2
J Datentypen String in File konvertieren funktioniert nicht Java Basics - Anfänger-Themen 4
U Wie genau funktioniert der ! Operator Java Basics - Anfänger-Themen 3
stormyark 4 Bit in einer for-schleife funktioniert nicht Java Basics - Anfänger-Themen 3
J Nach dem Exportieren funktioniert mein Programm nicht mehr Java Basics - Anfänger-Themen 8
M Java printf(Locale.... funktioniert nicht Java Basics - Anfänger-Themen 3
N Wieso funktioniert die Deklaration nicht Java Basics - Anfänger-Themen 3
C Long value an Stringbuilder übergeben, equals Methode funktioniert nicht Java Basics - Anfänger-Themen 2
districon Backtracking funktioniert nicht ganz Java Basics - Anfänger-Themen 3
H Array rückwärts auslesen funktioniert nicht Java Basics - Anfänger-Themen 3
S Math.random funktioniert nicht Java Basics - Anfänger-Themen 5
S Schleife funktioniert nicht Java Basics - Anfänger-Themen 2
B Ausgabe in TextArea funktioniert nicht Java Basics - Anfänger-Themen 2
Henri Webservice Delete und Update Methode funktioniert nicht Java Basics - Anfänger-Themen 27
J ActionListener von JCheckBox im Knoten von JTree funktioniert nicht Java Basics - Anfänger-Themen 2
C System.out.println - Parameterübergabe funktioniert nicht Java Basics - Anfänger-Themen 2
JD_1998 Hilfsmethode if return funktioniert nicht Java Basics - Anfänger-Themen 2
C JButton Text 2 Mal ändern funktioniert nicht Java Basics - Anfänger-Themen 8
T % funktioniert nicht Java Basics - Anfänger-Themen 2
D e(fx)clipse installieren funktioniert nicht Java Basics - Anfänger-Themen 3
D GPIO Nutzung mit Pi4J Library auf Raspberry funktioniert nicht Java Basics - Anfänger-Themen 3
F Java GUI-PaintComponent funktioniert nicht Java Basics - Anfänger-Themen 1
J equals funktioniert nicht - Warum Java Basics - Anfänger-Themen 13
L hilfe run button funktioniert nicht Java Basics - Anfänger-Themen 13
I Array funktioniert nicht. Java Basics - Anfänger-Themen 2
T if else Befehl funktioniert nicht richtig Java Basics - Anfänger-Themen 27
V_Fynn03 Erste Schritte BubbleSort Quelltext funktioniert noch nicht Java Basics - Anfänger-Themen 1
V_Fynn03 Erste Schritte JButton funktioniert nicht trotz richtiger Methode. Java Basics - Anfänger-Themen 17
R Erste Schritte Eclipse - Java - System.out.println(); funktioniert nicht Java Basics - Anfänger-Themen 2
G Programm mit Schleife funktioniert nicht Java Basics - Anfänger-Themen 5
T Redirect funktioniert nicht Java Basics - Anfänger-Themen 3
R Mein Plugin funktioniert nicht? Java Basics - Anfänger-Themen 10
J Zufallszahl funktioniert nicht Java Basics - Anfänger-Themen 27

Ähnliche Java Themen

Neue Themen


Oben