Event Handling Event Handling in eigene Klasse

Gnaa

Neues Mitglied
Hallo

Ich bin recht neu im Programmieren und deshalb auch noch sehr unerfahren ,bitte nicht hauen wenn diverse Fehler im Code sind aber aufmerksam machen kann man mich dennoch. :rtfm:
Ich habe ein Programm geschrieben mit einem Table und Buttons und Textfeldern sowie eine JCalendarCombo Box.
Das ganze befand sich alles zumindest der grösste teil in einer Klasse "View" und funktionierte einwandfrei .dann entschloss ich mich alles zu splitten und in verschiedene Klassen auszulagern z.b NordPanel MiddlePanel SuedPanel anschließend wird im Controller alles zusammengefügt und im View dargestellt quasi.Das funktioniert in der Anzeige auch super ich bekomme nur leider das mit dem Actionlistener nicht hin. Die Buttons und Textfelder sowie die JCalendarCombo befinden sich im NordPanel und die Table im Middlepannel. Wie kann ich die Daten nun in das Table einfügen
hier mal der vollständige Code der beiden Panels.

NordPanel:
Java:
public class FWNordPanelAusgaben extends JPanel  {
    private static final long serialVersionUID = 1L;
    private JLabel labelout;
    private BevelBorder bevel;
    private  JButton jbtnedit;
    private  JButton jbtnadd;
    private  JButton jbtndelete;
    final JTextField jtfname;
    final JTextField jtfbetrag;
    final JCalendarCombo cal;
    private   JPanel calpanel;
    private FWMiddlePanelAusgaben mid;
    
    
    public FWNordPanelAusgaben() {
        super();
        this.setLayout(null);
        this.setSize(600, 250);
        this.setOpaque( true );    /////////////////sichtbarkeit auf true sonst funzt farbauswahl nicht///////////////
        this.setBorder(new EmptyBorder(0, 0, 0, 0));
        this.setBackground( new Color( 162,183,192 ) );
       
        {
            bevel = new BevelBorder(BevelBorder.RAISED);
            Border border =bevel;
            labelout = new JLabel("Daten Ausgaben");
            labelout.setFont(new Font("Arial Marrow", Font.BOLD, 18));
            labelout.setLayout(null);
            labelout.setBounds(40, 10, 150, 30);    //(x,y,Höhe,Breite))))))
            labelout.setBorder(border);
            labelout.setForeground(new Color(120,111,80));
            labelout.setHorizontalAlignment(SwingConstants.CENTER); 
        }
        {
            jbtnadd = new JButton("Hinzufügen");
            jbtnadd.setLayout(null);
            jbtnadd.setBounds(40, 50, 150, 30);
 //           mid = new FWMiddlePanelAusgaben();
//            jbtnadd.addActionListener(new ActionListener() {
//
//                @Override
//                public void actionPerformed(ActionEvent e) {
//                   if( e.getSource() == jbtnadd){
//                    //mid.model.addEinAusgaben(new        FWEinAusgaben(jtfname.getText(),cal.getDate(),Double.parseDouble(jtfbetrag.getText()),false));
//                       mid.model.addEinAusgaben(new FWEinAusgaben("huhu",new Date(),8.9,false));
//                }}
//            });
//            //jbtnadd.addActionListener((ActionListener) new FWMiddlePanelAusgaben());
//            
        }
        {
            jbtnedit = new JButton("edit");
            jbtnedit.setLayout(null);
            jbtnedit.setBounds(40, 100, 150, 30);
        }
        {
            jbtndelete = new JButton("edit");
            jbtndelete.setLayout(null);
            jbtndelete.setBounds(40, 150, 150, 30);
        }
        {
            jtfname = new JTextField();
            jtfname.setLayout(null);
            jtfname.setBounds(370, 50, 145, 25);
        }
        {
            jtfbetrag = new JTextField(); 
            jtfbetrag.setLayout(null);
            jtfbetrag.setBounds(370, 150, 145, 25);
        }
        {
        cal =new JCalendarCombo(JCalendarCombo.DISPLAY_DATE, false);
        cal.putClientProperty("JCalendar.headerStyleer);", "Modern_Arrow");
        cal.setDateFormat(new SimpleDateFormat("dd-MM-yyyy"));
        calpanel=new JPanel(new BorderLayout());
        calpanel.setBounds(370, 100, 145, 25);
        calpanel.add(cal,BorderLayout.NORTH);
        }
       
        this.add(labelout);
        this.add(jbtnadd);
        this.add(jbtnedit);
        this.add(jbtndelete);
        this.add(jtfbetrag);
        this.add(jtfname);
        this.add(calpanel);
        this.validate();
	this.repaint();
        
        
     }
   
      
}
MiddlePanel:
Java:
public class FWMiddlePanelAusgaben extends JPanel{
    public FWPTablemodel.FWTabelmodel model;
    public JTable table;
    private TableColumnModel tcm;
    private JTable lineTable;
    private JScrollPane scp;
    private FWNordPanelAusgaben npa;
    
    public FWMiddlePanelAusgaben() {
        super();
        this.setLayout(null);
        this.setSize(600, 250);
        this.setOpaque( true );    /////////////////sichtbarkeit auf true sonst funzt farbauswahl nicht///////////////
        this.setBorder(new EmptyBorder(0, 0, 0, 0));
        this.setBackground( new Color( 162,183,192 ) );
        {
            model = new FWTabelmodel();
            table = new JTable(model);
            table.setOpaque(true);
            table.repaint();
            table.revalidate();
        }
        {
        tcm = table.getColumnModel();
        tcm.getColumn(0).setPreferredWidth(200);    
        tcm.getColumn(1).setPreferredWidth(123);    
        tcm.getColumn(2).setPreferredWidth(80);
        tcm.getColumn(3).setPreferredWidth(150);
        table.getTableHeader().setResizingAllowed(false);
        table.setAutoResizeMode(JTable.AUTO_RESIZE_OFF);
        }
        {
            lineTable = new FWLineNumberTable( table );
            lineTable.setBackground(Color.LIGHT_GRAY);
        }
        {
            scp = new JScrollPane(table);
            scp.setBackground(Color.LIGHT_GRAY);
            scp.setHorizontalScrollBarPolicy(HORIZONTAL_SCROLLBAR_NEVER);
            scp.setVerticalScrollBarPolicy(JScrollPane.VERTICAL_SCROLLBAR_ALWAYS);;
            scp.getViewport().setBackground(Color.LIGHT_GRAY);
        }
       
            scp.setBounds(20, 0, 571, 487);
            this.add(scp);
            this.add(lineTable);
              
    }
    
}
mit // gekennzeichnete bereiche war so ne Sache die ich versucht hatte !
in der Klasse wo das Funktionierte lautet die Stelle
Java:
 {      
         jbtnadd.addActionListener( new ActionListener() {
         @Override public void actionPerformed( ActionEvent e ) {
          
             model.addEinAusgaben(new EinAusgaben(jtname.getText(),cal.getDate(),Double.parseDouble(jtbetrag.getText()),false));
      }         
   });   
}
evtl noch ne Frage kann man das komplette Event Handlich auch auslagern wenn ja wie?

vielen Dank schon mal im voraus:)
 
Zuletzt bearbeitet von einem Moderator:

Tom299

Bekanntes Mitglied
Ich bin in Swing zwar nicht mehr so drin, aber ich denke mal, dein Problem ist, daß du in jedem Panel einen eigenen ActionListener benutzt. Schreib dir einen ActionListener, den du an die Panels weitergibst oder laß dein Parent-Panel/Frame, welches die SubPanels beinhaltet, den ActionListener implementieren.
 

Harry Kane

Top Contributor
Du erstellst Unterklassen von JPanel, ohne dessen Funktionalität zu erweitern. Sowas sollte man sich gar nicht erst angewöhnen. Es ist nicht Sinn des Erweiterns, die erweiterte Klasse nur zu benutzen. Zu dem Thema gibt es zahlreiche Beiträge.
Die Aufteilung von Code (von Gui Code in deinem Fall) auf mehrere Klassen hat zwar zunächste den scheinbaren Vorteil, dass der Code pro Klasse kürzer wird (zu große Klassen sollte man ja vermeiden), aber bringt den Nachteil mit sich, daß die Verbindung zwischen Komponenten, die zusammenarbeiten und damit voneinander wissen müssen, erschwert wird, wenn die Komponenten in verschiedenen Klassen liegen.
Als dirty workaround kannst du folgendes machen: In der "Hauptklasse" (um sie mal so zu nennen), in der du deine GUI erzeugst und die Instanzen von deinen ganzen Panels anlegst, übergibst du der Instanz von FWNordPanelAusgaben eine vorher erzeuget Instanz von FWMiddlePanelAusgaben. Dazu musst du den Konstruktor von FWNordPanelAusgaben ändern. Dann kannst du in der actionPerformed von FWNordPanelAusgaben (bzw. in der inneren, anonymen Klasse) auf FWMiddlePanelAusgaben.model zugreifen.
Nachteil: du erzeugst auf diese Weise Abhängigkeiten zwischen ziemlich speziellen Klassen --> Wiederverwendbarkeit gleich null.
Für ein eigenes Projekt stand ich vor kurzem vor einer ähnlichen Aufgabe: Bei einer Benutzeraktion sollen Objekte erzeugt und in einem anderen Objekt gespeichert werden.
Ich habe es so gelöst:
Java:
public interface Receiver<T> {
    void receive(T item);
}
public interface Creator<T> {
    T create();
}
public class ItemBroker<T> extends AbstractAction{
    private Creator<T> creator;
    private Receiver<T> receiver;
    
    public Receiver<T> getReceiver(){
        return this.receiver;
    }
    
    public Creator<T> getCreator(){
        return this.creator;
    }

    public void setReceiver(Receiver<T> r){
        this.receiver = r;
    }
    
    public void setCreator(Creator<T> c){
        this.creator = c;
    }

    public void actionPerformed(ActionEvent ae){
        if(creator == null || receiver == null) return;
        receiver.receive(creator.create());
    }
}
Instanzen von ItemBroker können z. B. zur Erzeugung von JMenus oder JButtons verwendet werden.
Angewandt auf deinen Fall würde das zu folgender Struktur führen:
FWNordPanelAusgaben implementiert Creator<EinAusgaben>. In der create-Methode würde FWNordPanelAusgaben den Inhalt der entsprechenden JTextFields oder JCalendarCombo auslesen, daraus ein EinAusgaben Objekt machen und dieses zurückgeben.
FWMiddlePanelAusgaben implementiert Receiver<EinAusgaben>. In seiner receive(EinAusgaben ea) Methode würde FWMiddlePanelAusgaben das übergebene EinAusgaben Objekt in sein TableModel einfügen.
Vorteil: FWNordPanelAusgaben muss nicht wissen, wie FWMiddlePanelAusgaben das EinAusgaben Objekt genau speichert, und muss auch von der Existenz eines TableModels in FWMiddlePanelAusgaben nix wissen, d. h. das TableModel von FWMiddlePanelAusgaben muss nicht public sein. Es ist allein Sache von FWMiddlePanelAusgaben wie das Objekt gespeichert wird. Und FWMiddlePanelAusgaben muss nicht wissen, wie genau FWNordPanelAusgaben eine Instanz von EinAusgaben erzeugt, und auf welche JComponents dabei genau zugegriffen werden muss. Das Erzeugen des EinAusgaben Objektes ist allein Sache des FWNordPanelAusgaben.

Davon abgesehen: null Layout is evil. Benutze lieber einen gescheiten Layoutmanager.
 

Gnaa

Neues Mitglied
Ich Danke erstmal allen Antwortenden!!!

Zu Harry Kane´s Beitrag ein paar Fragen.
Wenn ich das im oberen Text richtig verstanden habe rätst du mir besser die Variante zu benutzen die ich vorher hatte ? Alles im View außer mein Tablemodel sowie Renderer. Was mach ich wenn ich nehmen wir mal an ich habe 20 Buttons 5 Tabel´s incl model und jede menge anderes Zeugs dann wird die View Klasse ja mega groß! Gibt es da eine gescheite Möglichkeit das sinnvoll zu teilen?

zu dem letzten Satz ! Ich höre immer nur null Layout ist Evil warum?

Danke schon mal im voraus für die Antworten.
 

Harry Kane

Top Contributor
Wenn ich das im oberen Text richtig verstanden habe rätst du mir besser die Variante zu benutzen die ich vorher hatte ? Alles im View außer mein Tablemodel sowie Renderer. Was mach ich wenn ich nehmen wir mal an ich habe 20 Buttons 5 Tabel´s incl model und jede menge anderes Zeugs dann wird die View Klasse ja mega groß! Gibt es da eine gescheite Möglichkeit das sinnvoll zu teilen?
Wenn es deine Applikation erfordert, 20 Buttons und Tables zu haben, und dadurch die View "megagross" wird, dass soll das wohl so sein. Wie oben schon angedeutet, halte ich es für Augenwischerei, wenn dem Vorwurf entgehen möchte, eine zu große Klasse produziert zu haben, und deshalb Komponenten die zusammengehören, über verschiedene Klassen verteilt.
Auch wenn nur eine View-Klasse hast, sollte es möglich sein, durch eine saubere Programmierung ihre Lesbarkeit und ihren Umfang in einem brauchbaren Rahmen zu halten. Dabei können folgenden Punkt hilfreich sein:
- Verwendung von Arrays um verwandte Komponenten abzulegen (also JButton[20] statt jbutton1, jbutton 2, ...)
- Verwendung von Methoden, die bestimmte Foramtierungsaufgaben erledigen, z. B. statt mehrfach
Java:
 JLabel jl = new JLabel();
jl.setBorder(...);
jl.setBackground(...);
jl.setFont(...);
eine Hilfsmethode:
Java:
 JLabel jl = new JLabel();
formatLabel(jl);
private void formatLabel(JLabel jl){
    jl.setBorder(...);
    jl.setBackground(...);
    jl.setFont(...);
}
- überflüssige/sinnlose Methodenaufrufe entfernen. Du setzt mehrfach bei JButtons und JTextFields das Layout auf null --> sinnlos.
- Anwendungslogik auslagern in intelligente, flexibel anwendbare Actions (wie oben beschrieben), intelligente Datenmodelle wie z. B. eine TableModel (du hast eine Klasse FWPTablemodel.FWTabelmodel, aber ich habe kA, wie "schlau" die tatsächlich ist, und wieviel du von der Programmlogik dahin auslagern könntest. Nebenbemerkung: Das Interface Receiver könnte auch von einem selbstgeklöppelten TableModel implementiert werden).
- Statt eines Hauptscreens die Anwendung in mehrere Dialoge/Tabs/etc. aufteilen, aber so dass keine Komponenten die zusammenarbeiten müssen, getrennt werden. Die notwendige Kommunikation zwischen den Dialogen/Tabs sollte am besten über möglichst flexible interfaces erfolgen. Um eine interface basierte Kommunikation zwischen JPanels zu erreichen, wäre es auch statthaft, JPanel zu erweitern.
- Layoutmanager verwenden. Bei einem geeigneten Layoutmanager kannst du es dir sparen, Größe und Position der Komponenten einzeln anzugeben. Die in Java standardmäßig vorhandenen Layputmanager halte cich aber für eher mau. Ich mache seit Jahren das meiste mit Miglayout und habe bisher auch komplexe, in der Größe veränderliche Layouts stets so hinbekommen wie ich es wollte.

zu dem letzten Satz ! Ich höre immer nur null Layout ist Evil warum?
Uff. Dazu gibt es so viel im Netz... Kurzfassung: Warum sollte ich die Größe und Position von JComponents in einem komplexen Layout von hand berechnen, wenn ein LayoutManager das für mich erledigt? Und feste Größen und Positionen crashen spätestens dann, wenn du deine Applikationsfenster in der Größe veränderbar machen und bei verschiedenen Bildschirmauflösungen benutzen möchtest.
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
T Internes Event-handling in TextField/JTextField AWT, Swing, JavaFX & SWT 2
D Event Handling in Komplexen Anwendungen AWT, Swing, JavaFX & SWT 9
F Event Handling AWT, Swing, JavaFX & SWT 7
N Java Swing Event Handling AWT, Swing, JavaFX & SWT 7
R pint methode und event handling AWT, Swing, JavaFX & SWT 3
D Trennung des Event-Handling von der GUI AWT, Swing, JavaFX & SWT 4
L Event-handling, MouseListener AWT, Swing, JavaFX & SWT 5
K Event-Handling: Was steckt dahinter? AWT, Swing, JavaFX & SWT 11
Juelin in javafx Event auslösen AWT, Swing, JavaFX & SWT 4
G Mouse Event in anderemm Event auslösen AWT, Swing, JavaFX & SWT 50
schoel27 Mehrere JButtons sollen das gleiche Event auslösen AWT, Swing, JavaFX & SWT 2
K Warum genau hat man einen Listener, dann ein Event und was ist ein Adapter AWT, Swing, JavaFX & SWT 2
izoards Java FX Window Event SHOWING AWT, Swing, JavaFX & SWT 17
Fridolin111 Der KeyListener Löst kein event aus AWT, Swing, JavaFX & SWT 6
B JavaFX Von welcher Klasse und zu welchem Zeitpunkt werden Event-Objekte erstellt? AWT, Swing, JavaFX & SWT 3
L JavaFX Ich suche das passende Textfield Event AWT, Swing, JavaFX & SWT 1
J CheckBoxListCell auf click event in listView reagieren AWT, Swing, JavaFX & SWT 1
W JavaFX Etwas Tabellenartiges + Cell-Content-Changed-Event (o.ä.) AWT, Swing, JavaFX & SWT 30
O Swing Event Dispatch Thread AWT, Swing, JavaFX & SWT 1
B Swing Windowbuilder Rückgabewert im Event AWT, Swing, JavaFX & SWT 3
Z Befehl Action Event Verlassen AWT, Swing, JavaFX & SWT 4
F Event wenn Maus eine JList verlässt AWT, Swing, JavaFX & SWT 13
M JavaFX Absoluter Fokus während drag Event AWT, Swing, JavaFX & SWT 10
Pr0m3theus Animation nach Event AWT, Swing, JavaFX & SWT 6
K Event Handling ComboBox Event Handler AWT, Swing, JavaFX & SWT 7
Sugan Swipe Event? AWT, Swing, JavaFX & SWT 8
Tausendsassa Text changed event handler jTextField AWT, Swing, JavaFX & SWT 3
H Event Handling JavaFx - auf Event warten AWT, Swing, JavaFX & SWT 4
M Mouse Click Event ohne ein JComponent Objekt AWT, Swing, JavaFX & SWT 3
L JDialog - Event wenn Parent größe ändert AWT, Swing, JavaFX & SWT 2
M Swing OnLoad-Event o. Ä. AWT, Swing, JavaFX & SWT 3
D Event Handling "Plötzlich" kein mouseMoved-Event AWT, Swing, JavaFX & SWT 2
A Minimalestopuhr: JLabel.setText() durch eigenes Event ändern AWT, Swing, JavaFX & SWT 6
J Swing JMenuItem-Event?? AWT, Swing, JavaFX & SWT 3
J Swing JTable-Event für einen Select?? AWT, Swing, JavaFX & SWT 3
A Mouse event und exit on close AWT, Swing, JavaFX & SWT 11
V Swing Custom JToggleButton in JTable - Click-Event geht erst beim zweiten Mal AWT, Swing, JavaFX & SWT 7
J Button Event nur einmal ausführen AWT, Swing, JavaFX & SWT 3
S SWT Shell durch Event in der Größe verändern AWT, Swing, JavaFX & SWT 7
J Speichern, Event, Hintergrund getAppletContext AWT, Swing, JavaFX & SWT 2
T Callback vs. Event listener AWT, Swing, JavaFX & SWT 7
F Frage zu Event KeyTyped bei jPanel AWT, Swing, JavaFX & SWT 4
S MenuBar ActionListener Event ... AWT, Swing, JavaFX & SWT 6
T Anzahl Event Listeners AWT, Swing, JavaFX & SWT 4
A Swing JButton int im Event AWT, Swing, JavaFX & SWT 9
G Swing Onkeyup Event AWT, Swing, JavaFX & SWT 3
P Action Event abfangen etwas anders? AWT, Swing, JavaFX & SWT 2
3 Swing NullPointerException in AW Event-0? AWT, Swing, JavaFX & SWT 5
F Swing Auf JComboBox-Event erst NACH Auswahl reagieren AWT, Swing, JavaFX & SWT 8
P Swing Event das ausgelöst wird, sobald Änderung der Größe Abgeschlossen ist AWT, Swing, JavaFX & SWT 4
A Shift-Tab-Event auslösen AWT, Swing, JavaFX & SWT 5
T Event Dispatch Thread und noch ein Thread AWT, Swing, JavaFX & SWT 7
W Swing Event bei Schließen des Fensters AWT, Swing, JavaFX & SWT 6
A Probleme mit dem KeyReleased-event AWT, Swing, JavaFX & SWT 3
J Doppelklick Event AWT, Swing, JavaFX & SWT 32
jueki Event bei Änderung der Spaltenbreite in einem JTable AWT, Swing, JavaFX & SWT 15
D jtabbedpane Event VOR tab-Wechsel AWT, Swing, JavaFX & SWT 3
N Swing JComboBox Event Problem AWT, Swing, JavaFX & SWT 5
M JTree => Event Dispatching Error AWT, Swing, JavaFX & SWT 2
D Event in Fenster ausgeben + Observer + kein Plan AWT, Swing, JavaFX & SWT 2
H warum kann ich das focus event nicht abfangen ? AWT, Swing, JavaFX & SWT 5
X Den Wert von JSpinner setzen ohne Event AWT, Swing, JavaFX & SWT 3
H KeyUp-Event/Ereignis AWT, Swing, JavaFX & SWT 6
C Event Frage AWT, Swing, JavaFX & SWT 7
M Swing WindowListener -> Event abbrechen? AWT, Swing, JavaFX & SWT 2
K JToggleButton deaktivieren (komplettes event nehmen) AWT, Swing, JavaFX & SWT 2
R JTextField - Event bei jedem Buchstaben AWT, Swing, JavaFX & SWT 2
R WindowClosing Event - Schließen rückgängig machen? AWT, Swing, JavaFX & SWT 2
M Actionlistener ohne Event -.-?! AWT, Swing, JavaFX & SWT 2
O Probleme beim Zeichnen und AWT-Event-Queue-0 Exception AWT, Swing, JavaFX & SWT 5
D PropertyChangeListener Event auswertung AWT, Swing, JavaFX & SWT 7
O FlowLayout Button Event zuweisen? AWT, Swing, JavaFX & SWT 7
J remove() components bei event von JComboBox AWT, Swing, JavaFX & SWT 2
I event AWT, Swing, JavaFX & SWT 6
G Swing JFileChooser Event für neue Directory? AWT, Swing, JavaFX & SWT 5
X Checkboxen erstellt mit MouseClicked event AWT, Swing, JavaFX & SWT 10
Dragonfire Swing One componentResized Event AWT, Swing, JavaFX & SWT 14
data89 Was mache ich mit "Dispatched Event Thread"/Substance falsch? AWT, Swing, JavaFX & SWT 4
Kr0e Event simulieren AWT, Swing, JavaFX & SWT 5
S Tastatur Event auserhalb des fokuses aufnehmen AWT, Swing, JavaFX & SWT 4
R Swing ComboBox und doppelter Event!? AWT, Swing, JavaFX & SWT 10
M Swing Event mit Button AWT, Swing, JavaFX & SWT 7
B Wie kann ich ein event wieder beseitigen AWT, Swing, JavaFX & SWT 2
R Checkboxen - Event mit Controller abfangen AWT, Swing, JavaFX & SWT 7
Spin Window Event Beispiel AWT, Swing, JavaFX & SWT 6
O Tabelle über Event sortieren AWT, Swing, JavaFX & SWT 4
Iron Monkey JTable 2 Selektionsfarben Mouse-Event AWT, Swing, JavaFX & SWT 8
Dragonfire JTree, Selection via event AWT, Swing, JavaFX & SWT 7
K JButton auf JPanel in JTable (Darstellungs-/Event-Probleme) AWT, Swing, JavaFX & SWT 16
B JInternalFrame resize event AWT, Swing, JavaFX & SWT 2
E Komponenten in Event Dispatch Thread erzeugen? AWT, Swing, JavaFX & SWT 4
D Event beim Laden eines JPanels? AWT, Swing, JavaFX & SWT 3
O Action Event auslösen bei unbekanntem JTextField AWT, Swing, JavaFX & SWT 3
R Registrieren um Event abzufangen AWT, Swing, JavaFX & SWT 3
N solange Maustaste gedrückt Event AWT, Swing, JavaFX & SWT 15
Daniel_L Nachrichten/Event aus nicht-modalen Dialogen abfragen? AWT, Swing, JavaFX & SWT 4
G Event an einer JComboBox registrieren AWT, Swing, JavaFX & SWT 8
S Welches Event beim ändern einer Zelle in einer JTable AWT, Swing, JavaFX & SWT 4
S Welches Event beim auswählen einer Zelle? [JTable] AWT, Swing, JavaFX & SWT 3
A Event von Login zu Main klasse AWT, Swing, JavaFX & SWT 2

Ähnliche Java Themen

Neue Themen


Oben