ActionListener reagiert nicht

Status
Nicht offen für weitere Antworten.

merlä

Mitglied
Hallo Leute,

Ich weiss nicht ob das eine Anfängerfrage ist oder ob ich hier richtig bin... ???:L

Ziel ist ein Sudoku und das Problem liegt in der Window Klasse. Diese erhält ein zweidimensionales Array des Types Cell (ebenfalls eine Klasse von mir), indem die Daten des Spiels gespeichert sind. Eine Zelle kann folgende Daten speichern: Einen Wert (int), ein isLocked (boolean) und eine Farbe (Color).

Das Array heisst cellHolder[][] und wird der Window Klasse bei initialisieren übergeben. Bis dahin und noch ein wenig weiter klappt ja auch alles ganz gut, aus irgenwelchen Gründen reagiert jedoch der ActionListener der Buttons nicht. In der Konsole wird ein angezeigt, dass der Knopf gedrückt wurde aber der GUI ändert sich nicht.

Kann mir jemand helfen?


Code:
import java.awt.BorderLayout;
import java.awt.Container;
import java.awt.GridLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.util.Random;

import javax.swing.Action;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;

public class Window extends JFrame implements ActionListener
{
    private Cell cellHolder[][];
    private JButton[][] buttons;
    private int dimensions[] = {4, 9, 16};
    private Random random;
    private JButton setLock;
    private JButton solveIt;
    private JButton clearAll;
    private JFrame fester;
    private JPanel grid;
    private JPanel functionButtons;
    private JLabel rechts;
    private JLabel oben;
    private Action a;
    private int zahl1;
    private int zahl2;
    private int menuSize = 8;

    public Window(final Cell cellHolder[][])
    {
        this.cellHolder = cellHolder;
// Frame erstellen
        final JFrame fenster = new JFrame("Sudoku (Grid)");
        // Definiert wo das Fenster auf dem Bildschirn angezeigt wird.
        setLocation(300, 200);
        setSize(300, 300);

// Menü oben erstellen
        // Button erstellen
        JButton neu = new JButton("Neues Spiel");
        neu.setToolTipText("<html>Startet ein neues Spiel 

(Achtung! Alle eingegebenen Daten gehen verloren)</html>");
        fenster.getContentPane().add(neu);
        ActionListener aNeu = new ActionListener() // aNeu = ActionListener für Neu
        {
            public void actionPerformed(ActionEvent e)
            {
                new Thread(new Runnable()
                        {
                            public void run() 
                                { 
                                    System.out.println("ButtonEvent: Button \"neues Spiel\" wurde gedrückt");
                                    for (int i = 0; i < cellHolder.length; i++) 
                                    {
                                        for (int j = 0; j < cellHolder.length; j++) 
                                        {
                                            cellHolder[i][j].setValue(0);
                                            cellHolder[i][j].setLocked(false);
                                        }
                                    }
                                }
                        }).start();
            }
        };
        neu.addActionListener(aNeu);
        
        JButton neuOfLocked = new JButton("Spiel nochmals starten");
        neuOfLocked.setToolTipText("<html>Startet ein vorher gespeichertes

 Spiel noch einmal</html>");
        fenster.getContentPane().add(neuOfLocked);
        ActionListener aNeuOfLocked = new ActionListener() // aNeuOfLocked = ActionListener für neues Spiel der gelockten Cells
        {
            public void actionPerformed(ActionEvent e)
            {
                System.out.println("ButtonEvent: Button \"Spiel neu starten\" wurde gedrückt");
                new Thread(new Runnable()
                        { 
                            public void run() 
                            { 
                                for (int i = 0; i < cellHolder.length; i++) 
                                {
                                    for (int j = 0; j < cellHolder.length; j++) 
                                    {
                                        if (cellHolder[i][j].isLocked() == false)
                                        {
                                            cellHolder[i][j].setValue(0);
                                        }
                                    }
                                }
                            } 
                        }).start();
            }
        };
        neuOfLocked.addActionListener(aNeuOfLocked);
        
        JButton exit = new JButton("Spiel beenden");
        exit.setToolTipText("Beendet das Spiel");
        fenster.getContentPane().add(exit);
        ActionListener aExit = new ActionListener() // aExit = ActionListener für Exit
        {
            public void actionPerformed(ActionEvent e)
            {
                System.out.println("ButtonEvent: Button \"Spiel beenden\" wurde gedrückt");
                System.exit(1);
            }
        };
        exit.addActionListener(aExit);

        // Panel erstellen
        JPanel menuOben = new JPanel();
        menuOben.setLayout(new GridLayout(0, 3));
        // Buttons auf Panel packen
        menuOben.add(neu);
        menuOben.add(neuOfLocked);
        menuOben.add(exit);

// Menu rechts erstellen
        // Buttons erstellen
        JButton set = new JButton("set");
        set.setToolTipText("speichert das aktuelle Spiel.");
        fenster.getContentPane().add(set);
        ActionListener aSet = new ActionListener() // aSet = ActionListener für Set
        {
            public void actionPerformed(ActionEvent e)
            {
                System.out.println("ButtonEvent: Button Set wurde gedrückt, Cellen mit einem Value werden auf gelockt.");
                new Thread(new Runnable()
                        { 
                            public void run() 
                            { 
                                for (int i = 0; i < cellHolder.length; i++)
                                {
                                    for (int j = 0; j < cellHolder.length; j++)
                                    {
                                        if (cellHolder[i][j].getValue() != 0)
                                        {
                                            cellHolder[i][j].setLocked(true);
                                        }
                                    }
                                }
                                System.out.println("ButtonEvent: printout of the Table according to the LockStatus:");
                                for (int i = 0; i < cellHolder.length; i++)
                                {
                                    for (int j = 0; j < cellHolder.length; j++)
                                    {
                                        if (cellHolder[i][j].isLocked() == true)
                                        {
                                            System.out.print(" x");
                                        }
                                        else 
                                        {
                                            System.out.print(" o");
                                        }
                                    }
                                    System.out.println("");
                                }
                            } 
                        }).start();
            }
        };
        set.addActionListener(aSet);
        
        JButton solve = new JButton("solve");
        solve.setToolTipText("Löst das eingegebene Spiel");
        fenster.getContentPane().add(solve);
        ActionListener aSolve = new ActionListener() // aSolve = ActionListener für Solve
        {
            public void actionPerformed(ActionEvent e)
            {
                System.out.println("ButtonEvent: Button Solve wurde gedrückt");
                for (int i = 0; i < cellHolder.length; i++)
                {
                    for (int j = 0; j < cellHolder.length; j++)
                    {
                        Solver(cellHolder, i, j);
                    }
                }
            }
        };
        solve.addActionListener(aSolve);
        
        JButton show = new JButton("show");
        show.setToolTipText("<html>Nur für Programmierer

Gibt das Table auf der Console aus</html>.");
        fenster.getContentPane().add(show);
        ActionListener aShow = new ActionListener() // aShow = ActionListener für Show
        {
            public void actionPerformed(ActionEvent e)
            {
                System.out.println("ButtonEvent: Button Show wurde gedrückt, das grid soeht wie folgt aus:");
                for (int i = 0; i < cellHolder.length; i++)
                {
                    for (int j = 0; j < cellHolder.length; j++)
                    {
                        System.out.print(" "+cellHolder[i][j].getValue());
                    }
                    System.out.println();
                }
            }
        };
        show.addActionListener(aShow);
        
        // Panel erstllen
        JPanel menuRechts = new JPanel();
        menuRechts.setLayout(new GridLayout(menuSize, 0)); //dynamisch, passt sich der Table grösse an.
        // Buttons auf Panel packen
        menuRechts.add(set);
        menuRechts.add(solve);
        menuRechts.add(show);

// Button erstellen und mit den Value der Zelle initialisieren, natürlich Variabel für die grösse des Spiels
        System.out.println("generate Buttons for Field");
        buttons = new JButton[this.cellHolder.length][this.cellHolder.length];
        for (int i = 0; i < buttons.length; i++)
        {
            for (int j = 0; j < buttons.length; j++)
            {
                buttons[i][j] = new JButton("" + this.cellHolder[i][j].getValue());
                buttons[i][j].setActionCommand("" + i + j);
                buttons[i][j].setToolTipText("<html>Wert erhöhen

durch klicken.</html>");
            }
        }
        
        // Panel erstellen
        JPanel grid = new JPanel();
        grid.setLayout(new GridLayout(this.cellHolder.length, this.cellHolder.length));
        
        // Buttons auf Panel packen und ActionListener für Grid-Buttons erstellen
        for (int i = 0; i < buttons.length; i++)
        {
            for (int j = 0; j < buttons.length; j++)
            {
                grid.add(buttons[i][j]);
                buttons[i][j].addActionListener(this);
            }
        }
        
// Container erstellen und alles auf den Container packen
        Container c = fenster.getContentPane();
        c.setLayout(new BorderLayout(5, 5));
        c.add(grid, BorderLayout.CENTER);
        c.add(menuRechts, BorderLayout.EAST);
        c.add(menuOben, BorderLayout.NORTH);

// Alles packen und fertigstellen
        // Beim schliessen des Fensters -> Programm beenden
        fenster.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        fenster.pack();
        fenster.setVisible(true);
    }
    
    public void actionPerformed(final ActionEvent e)
    {
        // 1. erhöht den Wert der Cell um eins
        // 2. kontrolliert mit logic.checkLine und logic.checkRow und logic.checkRegion ob eingabe richtig ist.
        // 3. setzt Schriftfarbe auf blau, wenn alles ok, oder rot wenn es fehler gibt.
        new Thread(new Runnable()
                { 
                    public void run() 
                    { 
                        for (int i = 0; i < cellHolder.length; i++)
                        {
                            for (int j = 0; j < cellHolder.length; j++)
                            {
                                if(e.getActionCommand().equals(""+i+j))
                                { 
                                    if (cellHolder[i][j].getValue() < cellHolder.length)
                                    {
                                        cellHolder[i][j].setValue(cellHolder[i][j].getValue()+1);
                                        System.out.println("GridEvent: increment cell["+i+"]["+j+"] to new value of " + cellHolder[i][j].getValue());
                                    }
                                    else 
                                    {
                                        cellHolder[i][j].setValue(0);
                                        cellHolder[i][j].setValue(cellHolder[i][j].getValue()+1);
                                        System.out.println("GridEvent: set to 0 and increment cell["+i+"]["+j+"] to new value of " + cellHolder[i][j].getValue());
                                    }
                                }
                            }
                        }
                        
                    } 
                }).start();
    }    
    
    private void Solver(Cell cellHolder[][], int i, int j)
    {
                cellHolder[i][j].setValue(cellHolder[i][j].getValue() + 1);
                Logic lg = new Logic(cellHolder, i, j); 
                if (lg.checkLine() && lg.checkRow() && lg.checkRegion())
                {
                    System.out.println("Solver für ["+i+"]["+j+"] abgeschlossen.");
                    return;
                }
                System.out.println("Neuer Solver wird gestartet.");
                Solver(cellHolder, i, j);
    }
}

*******************************************************************************

Die Cell Klasse
Code:
import java.awt.Color;

/** The Class which represents a Cell, this is the smallest Object in a Sudoku Game.
 * When the Gametable is generated we instance a Cell-Object for every Cell in the Table.*/
public class Cell
{
    private int value; //int Value of the Cell
    private boolean isLocked; //boolean Value of the LockStatus
    private Color color;
    

    /** Constructor needs no parameters. (default Constructor)*/
    public Cell()
    {
        ;
    }
    
    /** This Method returns the LockStatus of the Cell
     * @return isLocked Returns a boolean Value 

true = Cell is Locked, 

false = Cell is not Locked */
    public boolean isLocked()
    {
        return isLocked;
    }

    /** This Method sets the LockStatus of the Cell
     * @value isLocked The Boolean value of the LockStatus. true = is Locked, false = is not Locked. */
    public void setLocked(boolean isLocked)
    {
        this.isLocked = isLocked;
    }

    /** This Method returns the Value of the Cell
     * @return value This is the int Value of the Cell*/
    public int getValue()
    {
        return value;
    }

    /** This Method sets the Value of the Cell
     * @value value A int Value in the size of the Game <code>(game.getTable().cellHolder[][].lenght)</code>*/
    public void setValue(int value)
    {
        this.value = value;
    }

    /** This Method returns the color the Cell has in the Grid(GUI)
     *  @return color the color the Cell has in the Grid.*/
    public Color getColor()
    {
        return color;
    }

    /** THis Method sets the Color the Cell has in the Grid(GUI).
     * @value color the color the Cell has in the Grid.*/
    public void setColorBlue(Color color)
    {
        this.color = color;
    }
}
ah ja der Solver funktioniert auch nocht nicht, aber den kann ich wahrscheindlich auch selber noch zum laufen bringen. :wink:

Besten Dank schon im Voraus
[/quote]
 

foobar

Top Contributor
Swing ist nicht Threadsafe, wenn du mit mehreren Threads auf Swing zugreifen willst mußt du diese synchronisieren.

Wofür hst du überhaupt einen Thread? Den brauchst du doch gar nicht.
 

merlä

Mitglied
Hallo foobar, danke für die schnelle Antwort

Als Neuling in der Java-Scene muss ich dir gestehen, dass ich das mit den Threads nicht selber gemacht habe. Ein Freund von mir hat mir dazu geraten.

Wie kann ich das GUI aktualisieren ohne Threads?
 

foobar

Top Contributor
Schmeiß den Thread einfach raus:

Code:
public void actionPerformed(final ActionEvent e)
    {
        // 1. erhöht den Wert der Cell um eins
        // 2. kontrolliert mit logic.checkLine und logic.checkRow und logic.checkRegion ob eingabe richtig ist.
        // 3. setzt Schriftfarbe auf blau, wenn alles ok, oder rot wenn es fehler gibt.
                        for (int i = 0; i < cellHolder.length; i++)
                        {
                            for (int j = 0; j < cellHolder.length; j++)
                            {
                                if(e.getActionCommand().equals(""+i+j))
                                {
                                    if (cellHolder[i][j].getValue() < cellHolder.length)
                                    {
                                        cellHolder[i][j].setValue(cellHolder[i][j].getValue()+1);
                                        System.out.println("GridEvent: increment cell["+i+"]["+j+"] to new value of " + cellHolder[i][j].getValue());
                                    }
                                    else
                                    {
                                        cellHolder[i][j].setValue(0);
                                        cellHolder[i][j].setValue(cellHolder[i][j].getValue()+1);
                                        System.out.println("GridEvent: set to 0 and increment cell["+i+"]["+j+"] to new value of " + cellHolder[i][j].getValue());
                                    }
                                }
                            }
                        }
                       }
       
    }
 

merlä

Mitglied
Das hatte ich vorher, aber dann ändern sich die Buttons im grid nicht wenn ich auch einen button im menuOben oder menuRechts klicke.

Wie kann ich denn ohne Threads machen , dass sich das GUI aktualisiert wenn ich auf einen Button (menuOben oder menuRecht) klicke?
 
G

Gast

Gast
Falls Du möchtest, dass sich die Beschriftung der Buttons ändert, solltest Du auch die Beschriftung ändern ;-)
Das heißt, nach cellHolder[j].setValue(9) auch ein buttons[j].setText("9") ausführen.
Von selbst passiert da leider nichts.
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
A Swing Bug in Swing? Wenn checkbox disabled reagiert ActionListener nicht AWT, Swing, JavaFX & SWT 5
P ActionListener reagiert nicht auf Button AWT, Swing, JavaFX & SWT 9
G ActionListener reagiert nicht AWT, Swing, JavaFX & SWT 4
5 Mod.Dialog reagiert n.auf ActionListener seiner Komponenten AWT, Swing, JavaFX & SWT 4
C Button ActionListener funktioniert nicht AWT, Swing, JavaFX & SWT 1
B Actionlistener mit Java Swing AWT, Swing, JavaFX & SWT 2
L jComboBox Actionlistener wird beim erstmaligen Befüllen getriggert AWT, Swing, JavaFX & SWT 7
H Viele ActionListener (MouseListener) - Performance AWT, Swing, JavaFX & SWT 24
pkm MainFrame durch Actionlistener auffrischen, aber wie? AWT, Swing, JavaFX & SWT 2
L actionListener für Button AWT, Swing, JavaFX & SWT 97
R Actionlistener funktioniert nicht AWT, Swing, JavaFX & SWT 4
N Bilder auf Button einfügen und mehrmals ändern (ein Button, mehrere ActionListener) AWT, Swing, JavaFX & SWT 2
R ActionListener in Actionlistener AWT, Swing, JavaFX & SWT 6
S Swing Variable in Actionlistener aufrufen AWT, Swing, JavaFX & SWT 10
P Swing ActionListener überschreibt einen Wert aus der Hauptklasse nicht AWT, Swing, JavaFX & SWT 5
N Aufruf einer anderen Klasse durch Button ActionListener AWT, Swing, JavaFX & SWT 2
M AWT Kann meinen Fehler beim ActionListener nicht finden AWT, Swing, JavaFX & SWT 5
F Wie bekomme ich den Wert der ComboBox in eine Variable gespeichert welche ich für meinen ActionListener nutzen kann? AWT, Swing, JavaFX & SWT 3
L Ein Actionlistener für ein Textfeld, anstatt viele Actionlistener für ein Textfeld AWT, Swing, JavaFX & SWT 7
coolian ActionListener funktonirt nicht richtig auf JMenuItem AWT, Swing, JavaFX & SWT 4
L ActionListener zu Button in Panel hinzufügen AWT, Swing, JavaFX & SWT 10
R Kann JLabel in ActionListener nicht aufrufen AWT, Swing, JavaFX & SWT 4
Blender3D einzelner ActionListener vs anonyme ActionListener AWT, Swing, JavaFX & SWT 10
T Swing Änderung des ActionListener Events nach Klick auf JButton AWT, Swing, JavaFX & SWT 2
xYurisha ActionListener Methoden Buttons zuweisen! AWT, Swing, JavaFX & SWT 16
J ActionListener bei Buttons AWT, Swing, JavaFX & SWT 14
S Swing Problem mit Button und ActionListener AWT, Swing, JavaFX & SWT 5
it_is_all ActionListener umlenken/ updaten mit AddActionListener funktioniert nicht AWT, Swing, JavaFX & SWT 3
it_is_all Event Handling ActionListener in anderer Klasse klappt nicht AWT, Swing, JavaFX & SWT 4
F "ActionListener" funktioniert nicht AWT, Swing, JavaFX & SWT 4
Z ActionListener Variable übergeben AWT, Swing, JavaFX & SWT 12
T JProgressbar während actionListener updaten AWT, Swing, JavaFX & SWT 1
S While Schleife im Actionlistener AWT, Swing, JavaFX & SWT 1
S ActionListener für alle Buttons AWT, Swing, JavaFX & SWT 26
R Swing ActionListener bei JButton AWT, Swing, JavaFX & SWT 9
T ActionListener nimmt JTextField nicht mehr an. AWT, Swing, JavaFX & SWT 2
P ActionListener Graphics Einbauen AWT, Swing, JavaFX & SWT 0
S actionlistener mit 2 fenster integrieren AWT, Swing, JavaFX & SWT 11
Liondary GUI - ActionListener AWT, Swing, JavaFX & SWT 7
J ActionListener erkennt Variable nicht AWT, Swing, JavaFX & SWT 6
E ActionListener führt falsche Funktion aus AWT, Swing, JavaFX & SWT 6
Sin137 ActionListener in MVC AWT, Swing, JavaFX & SWT 7
M ActionListener und mathematische Methoden AWT, Swing, JavaFX & SWT 13
A Oberfläche mit zwei Klassen und actionlistener verbinden AWT, Swing, JavaFX & SWT 7
Paul15 ActionListener Variablen AWT, Swing, JavaFX & SWT 13
Y ActionListener AWT, Swing, JavaFX & SWT 2
K Ereignisbehandlung, ActionListener, ActionEvent AWT, Swing, JavaFX & SWT 3
A Gui für Vokabeltrainer (ActionListener) AWT, Swing, JavaFX & SWT 14
C Im ActionListener Buttons disablen, einen Thread starten, dann Buttons enablen AWT, Swing, JavaFX & SWT 2
M JTextArea wird nicht aktualisiert (ActionListener-Problem) AWT, Swing, JavaFX & SWT 1
J Event Handling JOptionPane ActionListener setzen. AWT, Swing, JavaFX & SWT 3
S ActionListener Klasse aufrufen AWT, Swing, JavaFX & SWT 4
R Swing Problem: IOException bei ActionListener AWT, Swing, JavaFX & SWT 1
J ActionListener soll auf paint() Methode zugreifen AWT, Swing, JavaFX & SWT 1
A JButton wird bei ActionListener nicht "angenommen" AWT, Swing, JavaFX & SWT 7
T Einfaches Problem mit ActionListener AWT, Swing, JavaFX & SWT 2
K ActionListener mit KeyListener AWT, Swing, JavaFX & SWT 7
K GUI, Button, ActionListener - ein paar Einsteigerprobleme AWT, Swing, JavaFX & SWT 1
W Verschachtelter ActionListener AWT, Swing, JavaFX & SWT 0
N gewünschte ActionListener bei RadioButton mit isSelected geht nicht AWT, Swing, JavaFX & SWT 2
C Probleme mit Buttons und einem ActionListener AWT, Swing, JavaFX & SWT 2
K Swing JMenu und ActionListener AWT, Swing, JavaFX & SWT 4
A Swing ActionListener AWT, Swing, JavaFX & SWT 8
V ActionListener Abhängigkeitenproblem AWT, Swing, JavaFX & SWT 6
M ActionListener für mehrere Klassen AWT, Swing, JavaFX & SWT 4
J ActionListener für Buttons AWT, Swing, JavaFX & SWT 3
M Event Handling ActionListener übergeben ich checks net AWT, Swing, JavaFX & SWT 4
C Swing ComboBox - ActionListener deaktivieren AWT, Swing, JavaFX & SWT 2
S Button (ActionListener) funktioniert nicht, wenn y-Koordinate verändert wird AWT, Swing, JavaFX & SWT 5
L Swing ActionListener führt seine Aufgabe nur teilweise aus. AWT, Swing, JavaFX & SWT 7
A Swing ActionListener kann nicht hinzugefügt werden AWT, Swing, JavaFX & SWT 4
P Actionlistener - 3 klassen - kompliziert - auf methoden zugreifen AWT, Swing, JavaFX & SWT 3
Q CardLayout, ausgelagerte Panels, ActionListener AWT, Swing, JavaFX & SWT 5
M ProgressBar in ActionListener AWT, Swing, JavaFX & SWT 4
D AWT eigenem Knopf ActionListener zuweisen AWT, Swing, JavaFX & SWT 24
E Wert aus ActionListener geben AWT, Swing, JavaFX & SWT 4
J ActionListener per Innere Klasse oder e.getActionCommand() if-Abfrage? AWT, Swing, JavaFX & SWT 12
L Swing ActionListener zugriff auf bestimmte Elemente AWT, Swing, JavaFX & SWT 3
P Swing Seltsames ActionListener-Verhalten AWT, Swing, JavaFX & SWT 7
Oliver530 ActionListener von eigener ButtonKlasse AWT, Swing, JavaFX & SWT 16
Kenan89 statischer ActionListener keine Wirkung? AWT, Swing, JavaFX & SWT 2
Kenan89 statischer ActionListener keine Wirkung? AWT, Swing, JavaFX & SWT 3
C In der Schleife ActionListener aktivieren AWT, Swing, JavaFX & SWT 3
B Swing Problem beim ActionListener AWT, Swing, JavaFX & SWT 5
P Swing JPanel mit ActionListener mehrfach verwenden AWT, Swing, JavaFX & SWT 8
1 ActionEvent generieren und an ActionListener weiterleiten AWT, Swing, JavaFX & SWT 12
N Swing Klasse erbt von JDialog - Problem mit innerer ActionListener-Klasse AWT, Swing, JavaFX & SWT 6
N JCombobox und Actionlistener Aktion nur ausführen, wenn Useraktion ihn auslöst AWT, Swing, JavaFX & SWT 4
N Componente und Actionlistener AWT, Swing, JavaFX & SWT 5
C ActionListener AWT, Swing, JavaFX & SWT 6
Corben ActionListener Error AWT, Swing, JavaFX & SWT 2
F Wert durch ActionListener an Klasse übergeben AWT, Swing, JavaFX & SWT 3
I Swing Problem mit InputMap bei JButton (ActionListener) AWT, Swing, JavaFX & SWT 3
S Swing JButton mit ActionListener innerhalb einer JTable AWT, Swing, JavaFX & SWT 4
P Variablen in einem ActionListener zurücksetzen AWT, Swing, JavaFX & SWT 6
M AWT Problem mit ActionListener AWT, Swing, JavaFX & SWT 2
S ActionListener "nach oben weitergeben" AWT, Swing, JavaFX & SWT 10
M Anonymer ActionListener AWT, Swing, JavaFX & SWT 4
L SWT Actionlistener Combobox öffnen AWT, Swing, JavaFX & SWT 4
S MenuBar ActionListener Event ... AWT, Swing, JavaFX & SWT 6

Ähnliche Java Themen


Oben