Swing Daten von JPanel zu JFrame senden

McDonnough

Mitglied
Ich bin momentan wieder an einem kleinen Chat am Arbeiten und brauche (wieder einmal) eure Hilfe.

Momentan besteht meine GUI aus drei Komponenten:
  • Loginpanel und
  • Chatpanel
  • Chatframe
Die ersten zwei sind Ableitungen von JPanel und werden schlussendlich im Chatframe (JFrame) übereinander angezeigt. Wie das ganze dann aussieht, könnt ihr im Anhang sehen.
Zu erwähnen ist noch, dass der Chatframe ein Objekt (ChatClient) besitzt, in welchem Host, Port und Timeout gespeichert werden und über welches die Methoden connect(), reconnect(), disconnect() und sendMessage() aufgerufen werden können.

Jetzt möchte ich dem User die Möglichkeit geben, dass er einfach einen neuen Host eintippen und 'connect' drücken kann und er wird automatisch ausgeloggt und neu eingeloggt.
Kein Problem, wenn ich es in der Loginpanel-Klasse mache, aber eigentlich will ich diese Arbeit im Chatframe erledigen und das Loginpanel soll nur eine Nachricht mit den neuen Daten an den Frame schicken, wenn auf 'connect' gedrückt wird.

Ich habe gedacht, ich könne das irgendwie mit einem Listener lösen, aber ich stehe momentan auf dem Schlauch und habe keine Ahnung, wie ich das machen soll.

Wäre schon, wenn mir jemand von euch erklären könnte, wie man das am besten löst.
 

Anhänge

  • chat.JPG
    chat.JPG
    20,7 KB · Aufrufe: 37
Zuletzt bearbeitet:
V

vanny

Gast
also entweder referenzierst du die benötigten Komponenten untereinander und per getter/setter/eigenen -Methoden greifst du dann zu.

oder tfa hat da mal was vorbereitet:

Snippet Eventbus

oder oder oder ....

ohne Code ists schwer, da was zu zu sagen
 

McDonnough

Mitglied
Habe soeben auf stackoverflow diesen Eintrag gefunden und muss dem Autor irgendwie recht geben. Vor allem dieser Teil ist für mich sehr überzeugend:
"It's just the popular Observer (Listener) pattern made 'globally' [...] it breaks the Encapsulation principle (each object knows about everything) and Single Responsibility principle [...]"
Ich würde aber gerne auch noch Meinungen von euch zu diesem Thema (pro oder contra EventBus) hören.
 
V

vanny

Gast
jain.

nur weil die events im Bus veröffentlicht werden springen ja nicht gleich alle Lauscher auf jedes event an^^.

Is auch nur eine Idee gewesen, dein Problem mit einem kleinen link zu lösen.

Gruß Vanny
 

McDonnough

Mitglied
Ich werde heute Abend das Ganze mal mit dem EventBus umsetzen, da ich bisher keine wirklich gute Alternative gefunden habe, die ähnlich wenig Aufwand erfordert.
Bin aber selbstverständlich weiterhin offen für andere Ansätze und/oder Lösungsvorschläge.
 

Michael...

Top Contributor
da ich bisher keine wirklich gute Alternative gefunden habe, die ähnlich wenig Aufwand erfordert.
Standard OOP? Ganz normal mit Listenern? Bin mir nicht sicher ob hier eine so lose Kopplung notwendig oder gar sinnvoll ist. Zumal hier doch ein recht enger Zusammenhang notwendig scheint.

Aufgrund der Fragestellung vermute ich hier ein grundsätzliches Verständnisproblem, das sich m.M. auch mit dem EventBus nicht vollständig lösen lässt.
Das Konzept würde ich nochmal überdenken. Interessant und für solche Vorhaben empfehlenswert: MVC Entwurfsmuster
 

McDonnough

Mitglied
Ich habe mal ein Klassendiagramm erstellt, welches zeigt, wie ich den Chat (Clientseitig) bisher aufgebaut habe.

Meine Idee ist jetzt, dass wenn der User im 'LoginPanel' auf den 'connectButton' drückt, der Wert (i.e. Serveradresse) aus dem 'hostField' gelesen wird und dem 'ChatFrame' bekanntgemacht wird.
Dieser ändert den Wert 'host' in seiner Referenz auf 'ChatClient', führt 'disconnect()' und danach wieder 'connect()' aus, um auf den neuen Server zu verbinden.

Natürlich könnte ich die Referenz auf 'ChatClient' dem 'LoginPanel' nach unten reichen und das ganze so machen, aber eigentlich möchte ich das Ganze nicht so eng aneinanderknüpfen und auch keine grosse Logik im 'LoginPanel' einbauen.

Gleiches gilt für den 'ChatPanel'. Wenn der User auf den 'disconnectButton' drückt, soll dies dem 'ChatFrame' bekanntgemacht werden und dieser soll über 'client' die 'disconnect()'-Methode aufrufen.

Und ich habe im Moment wirklich keine Ahnung, wie ich das gescheit umsetzen kann/soll (ausser EventBus). Listener habe ich mir auch schon überlegt, habe ich aber (leider) noch nie selber gemacht und habe dementsprechend keine blassen Dunst, wie ich das genau einbauen muss.

Anmerkung: Das Attribut 'client' in der Klasse 'ChatClient' rührt daher, dass ich die Kryonet-Library verwende.
 

Anhänge

  • chat_class.jpg
    chat_class.jpg
    52,8 KB · Aufrufe: 30
Zuletzt bearbeitet:

McDonnough

Mitglied
So, ich habe das ganze mal umgesetzt, wobei ich vor allem im ChatClient ein Änderungen gemacht habe.

ChatClient:
Java:
package org.crumbleworks.crumbchat.client;

import java.io.IOException;

import com.esotericsoftware.kryonet.Client;

public class ChatClient {
    private int tcpPort, udpPort, timeout;
    private String host;
    private Client client;
    
    private final int DEFAULT_TCPPORT = 44444;
    private final int DEFAULT_UDPPORT = 44444;
    private final int DEFAULT_TIMEOUT = 5000;
    
    public ChatClient() {
        this.tcpPort = DEFAULT_TCPPORT;
        this.udpPort = DEFAULT_UDPPORT;
        this.timeout = DEFAULT_TIMEOUT;
        
        init();
    }
    
    public ChatClient(String host) {
        this.host = host;
        this.tcpPort = DEFAULT_TCPPORT;
        this.udpPort = DEFAULT_UDPPORT;
        this.timeout = DEFAULT_TIMEOUT;
        
        init();
    }
    
    public ChatClient(String host, int tcpPort) {
        this.host = host;
        this.tcpPort = tcpPort;
        this.udpPort = DEFAULT_UDPPORT;
        this.timeout = DEFAULT_TIMEOUT;
        
        init();
    }
    
    public ChatClient(String host, int tcpPort, int udpPort) {
        this.host = host;
        this.tcpPort = tcpPort;
        this.udpPort = udpPort;
        this.timeout = DEFAULT_TIMEOUT;
        
        init();
    }
    
    public ChatClient(String host, int tcpPort, int udpPort, int timeout) {
        this.host = host;
        this.tcpPort = tcpPort;
        this.udpPort = udpPort;
        this.timeout = timeout;
        
        init();
    }
    
    private void init() {
        client = new Client();
        client.start();
    }
    
    public void connect() throws IOException {
        client.connect(timeout, host, tcpPort, udpPort);
    }
    
    public void connect(String host, int port) throws IOException {
        this.host = host;
        this.tcpPort = port;
        this.udpPort = port;
        
        connect();
    }
    
    public void reconnect() throws IOException {
        client.reconnect();
    }
    
    public void disconnect() {
        client.close();
    }
    
    public void sendMessage(String message) {
        client.sendTCP(message);
        client.sendUDP(message);
    }
    
    public String getHost() {
        return host;
    }
    
    public void setHost(String host) {
        this.host = host;
    }
    
    public int getTcpPort() {
        return tcpPort;
    }
    
    public void setTcpPort(int tcpPort) {
        this.tcpPort = tcpPort;
    }
    
    public int getUdpPort() {
        return udpPort;
    }
    
    public void setUdpPort(int udpPort) {
        this.udpPort = udpPort;
    }
}
ChatFrame:
Java:
package org.crumbleworks.crumbchat.gui.test;

import java.awt.Dimension;
import java.awt.GridBagConstraints;
import java.awt.GridBagLayout;
import java.awt.Insets;
import java.awt.Toolkit;

import javax.swing.JFrame;
import javax.swing.JSeparator;
import javax.swing.UIManager;

import org.crumbleworks.crumbchat.client.ChatClient;
import org.crumbleworks.crumbchat.gui.GeneralWindowListener;

public class ChatFrame extends JFrame {
    private static final long serialVersionUID = -5850291837870435892L;
    
    private ChatClient client;
    
    private ChatPanel chatPanel;
    private LoginPanel loginPanel;
    
    private JSeparator horizontalSeparator;

    public ChatFrame() {
        client = new ChatClient();
        
        setLookAndFeel();
        
        setTitle("crumbchat");
        setLayout(new GridBagLayout());
        addWindowListener(new GeneralWindowListener());
        
        initComponents();
        placeComponents();
        
        setPosition();
        pack();
        setVisible(true);
    }
    
    private void setLookAndFeel() {
        try {
            UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());
        }
        catch(Exception e) {
            e.printStackTrace();
        }
    }
    
    private void setPosition() {
        Dimension screen = Toolkit.getDefaultToolkit().getScreenSize();
        this.setLocation(((int) screen.getWidth() / 2) - this.getWidth(), ((int) screen.getHeight() / 2) - this.getHeight());
    }
    
    private void initComponents() {
        chatPanel = new ChatPanel();
        loginPanel = new LoginPanel();
        
        horizontalSeparator = new JSeparator(JSeparator.HORIZONTAL);
    }

    private void placeComponents() {
        GridBagConstraints gbc = new GridBagConstraints();
        gbc.fill = GridBagConstraints.BOTH;
        gbc.insets = new Insets(5, 5, 5, 5);
        
        //LoginPanel
        gbc.gridx = 0;
        gbc.gridy = 0;
        gbc.gridwidth = 1;
        gbc.gridheight = 1;
        add(loginPanel, gbc);
        
        //Separator
        gbc.gridx = 0;
        gbc.gridy = 1;
        gbc.gridwidth = 1;
        gbc.gridheight = 1;
        add(horizontalSeparator, gbc);
        
        //ChatPanel
        gbc.gridx = 0;
        gbc.gridy = 2;
        gbc.gridwidth = 1;
        gbc.gridheight = 1;
        add(chatPanel, gbc);
    }
    
    /**
     * @param args
     */
    public static void main(String[] args) {
        new ChatFrame();
    }
}
ChatPanel:
Java:
package org.crumbleworks.crumbchat.gui.test;

import java.awt.Color;
import java.awt.GridBagConstraints;
import java.awt.GridBagLayout;
import java.awt.Insets;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

import javax.swing.BorderFactory;
import javax.swing.JButton;
import javax.swing.JPanel;
import javax.swing.JTextArea;
import javax.swing.JTextField;

public class ChatPanel extends JPanel implements ActionListener {
    private static final long serialVersionUID = -2073883748397706101L;

    private JTextArea messageArea;
    private JTextField messageField;
    private JButton sendButton, disconnectButton;
    
    public ChatPanel() {
        setLayout(new GridBagLayout());
        
        initComponents();
        placeComponents();
        
        setVisible(true);
    }
    
    private void initComponents() {
        messageArea = new JTextArea(15, 0);
        messageArea.setEditable(false);
        messageArea.setBorder(BorderFactory.createLineBorder(Color.LIGHT_GRAY));
        
        messageField = new JTextField(20);
        messageField.addActionListener(this);
        
        sendButton = new JButton("send");
        sendButton.addActionListener(this);
        
        disconnectButton = new JButton("disconnect");
        disconnectButton.addActionListener(this);
    }

    private void placeComponents() {
        GridBagConstraints gbc = new GridBagConstraints();
        gbc.fill = GridBagConstraints.BOTH;
        gbc.insets = new Insets(5, 5, 5, 5);
        
        //MessageArea
        gbc.gridx = 0;
        gbc.gridy = 0;
        gbc.gridwidth = 3;
        gbc.gridheight = 1;
        add(messageArea, gbc);
        
        //MessageField
        gbc.gridx = 0;
        gbc.gridy = 1;
        gbc.gridwidth = 1;
        gbc.gridheight = 1;
        add(messageField, gbc);
        
        //SendButton
        gbc.gridx = 1;
        gbc.gridy = 1;
        gbc.gridwidth = 1;
        gbc.gridheight = 1;
        add(sendButton, gbc);
        
        //LogoutButton
        gbc.gridx = 2;
        gbc.gridy = 1;
        gbc.gridwidth = 1;
        gbc.gridheight = 1;
        add(disconnectButton, gbc);
    }
    
    @Override
    public void actionPerformed(ActionEvent e) {
        if(e.getSource().equals(sendButton) && !messageField.getText().isEmpty() || e.getSource().equals(messageField) && !messageField.getText().isEmpty()) {
            //Nachricht senden
            System.out.println("message: " + messageField.getText());
            messageField.setText("");
        }
        else if(e.getSource().equals(disconnectButton)) {
            //Disconnect durchfuehren
            System.out.println("disconnect");
        }
    }
}
LoginPanel:
Java:
package org.crumbleworks.crumbchat.gui.test;

import java.awt.GridBagConstraints;
import java.awt.GridBagLayout;
import java.awt.Insets;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

import javax.swing.JButton;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.JTextField;

public class LoginPanel extends JPanel implements ActionListener {
    private static final long serialVersionUID = -1137766211210278587L;
    
    private JLabel usernameFieldLabel, hostFieldLabel;
    private JTextField usernameField, hostField;
    private JButton connectButton;
    
    public LoginPanel() {
        setLayout(new GridBagLayout());
        
        initComponents();
        placeComponents();
        
        setVisible(true);
    }
    
    private void initComponents() {
        usernameFieldLabel = new JLabel("Username:");
        hostFieldLabel = new JLabel("Host:");
        
        usernameField = new JTextField(20);
        hostField = new JTextField(10);
        
        connectButton = new JButton("connect");
        connectButton.addActionListener(this);
    }

    private void placeComponents() {
        GridBagConstraints gbc = new GridBagConstraints();
        gbc.fill = GridBagConstraints.BOTH;
        gbc.insets = new Insets(5, 5, 5, 5);
        
        //Username
        gbc.gridx = 0;
        gbc.gridy = 2;
        gbc.gridwidth = 1;
        gbc.gridheight = 1;
        add(usernameFieldLabel, gbc);
        
        gbc.gridx = 1;
        gbc.gridy = 2;
        gbc.gridwidth = 1;
        gbc.gridheight = 1;
        add(usernameField, gbc);

        //Host
        gbc.gridx = 0;
        gbc.gridy = 3;
        gbc.gridwidth = 1;
        gbc.gridheight = 1;
        add(hostFieldLabel, gbc);
        
        gbc.gridx = 1;
        gbc.gridy = 3;
        gbc.gridwidth = 1;
        gbc.gridheight = 1;
        add(hostField, gbc);
        
        //LoginButton
        gbc.gridx = 0;
        gbc.gridy = 4;
        gbc.gridwidth = 1;
        gbc.gridheight = 1;
        add(connectButton, gbc);
    }
    
    @Override
    public void actionPerformed(ActionEvent e) {
        if(e.getSource().equals(connectButton)) {
            if(usernameField.getText().isEmpty()) {
                JOptionPane.showMessageDialog(this, "Bitte geben sie einen Usernamen an.", "Usernamen angeben", JOptionPane.INFORMATION_MESSAGE);
            }
            else if(hostField.getText().isEmpty()) {
                JOptionPane.showMessageDialog(this, "Bitte geben sie einen Host an.", "Host angeben", JOptionPane.INFORMATION_MESSAGE);
            }
            else {
                //Connect durchfuehren
                System.out.println("connect");
            }
        }
    }
}
Dort, wo eine Aktion ausgeführt werden muss, die über den ChatClient läuft, habe ich es hingeschrieben (Nachricht senden, Disconnect, Connect).

Ich hoffe, es kann mir jemand auf Basis dieses Codes erklären, wie man mein Vorhaben am einfachsten umsetzen kann.
 

McDonnough

Mitglied
Ich habe zwischenzeitlich auch mal EventBus eingebaut und muss sagen, dass das ganze ziemlich einfach ist und wunderbar funktioniert.

Im LoginPanel sieht's jetzt so aus:
Java:
else {
    //Connect durchfuehren
    System.out.println("connect");
    EventBus.publish(new ConnectEvent(hostField.getText()));
}
ConnectEvent:
Java:
package org.crumbleworks.crumbchat.client.gui.event;

public class ConnectEvent {
	private String host;

	public ConnectEvent(String host) {
		this.host = host;
	}
	
	public String getHost() {
		return host;
	}
}
Und die Methode im ChatFrame:
Java:
@EventSubscriber(eventClass = ConnectEvent.class)
public void onConnect(ConnectEvent ce) {
    client.setHost(ce.getHost());

    try {
        client.connect();
    } catch (IOException e) {
        System.err.println("couldn't connect to server");
    }
}
Selbiges habe ich auch für ein MessageEvent und ein DisconnectEvent gemacht und finde es eigentlich eine schöne Lösung für das Ganze.
 

GUI-Programmer

Top Contributor
Ich beziehe mich jetzt mal auf den Titel. In deinem Fall, glaube ich benötigst du gar kein EventBus. Es würde völlig reichen, wenn due eine Instanz von ChatFrame an ChatPanel per Konstruktor weiter gibts (evtl. auch weiter an LoginPanel). Dann kann dein ChatPanel die Methoden deines Frames aufrufen.
 
Zuletzt bearbeitet:

McDonnough

Mitglied
Das ist natürlich auch eine Möglichkeit.
Ich wollte das Ganze (auch als Übung für mich) aber eigentlich nicht so aneinanderbinden, sprich das LoginPanel soll nichts vom ChatFrame wissen, sondern einfach Nachrichten (bzw. Events) "veröffentlichen" und der ChatFrame spring dann darauf an.
 

GUI-Programmer

Top Contributor
Das ist natürlich auch eine Möglichkeit.
Ich wollte das Ganze (auch als Übung für mich) aber eigentlich nicht so aneinanderbinden, sprich das LoginPanel soll nichts vom ChatFrame wissen, sondern einfach Nachrichten (bzw. Events) "veröffentlichen" und der ChatFrame spring dann darauf an.

OK, dann bietet sich EventBus natürlich schon an.

Thema erledigt???
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
H JTabel - RowFilter Daten für Berechnung filtern AWT, Swing, JavaFX & SWT 6
M Daten zufällig Einlesen aus einer Datei (binäres Format) AWT, Swing, JavaFX & SWT 7
W Nullpointer Exception beim übertragen von Daten von Scene zu Scene AWT, Swing, JavaFX & SWT 6
W Daten von Controller zu Controller übertragen AWT, Swing, JavaFX & SWT 7
D Columns unabhängig voneinander mit Daten füllen JavaFx AWT, Swing, JavaFX & SWT 1
H Daten aus einer XML(x83-Datei) in einem JFrame anzeigen lassen AWT, Swing, JavaFX & SWT 9
T Anbinden der Tabelle an die Daten AWT, Swing, JavaFX & SWT 5
F JavaFX Tabelle mit Daten füllen AWT, Swing, JavaFX & SWT 9
A JavaFX Daten in eine HTML-Table mit JS schreiben AWT, Swing, JavaFX & SWT 3
ralfb1105 JavaFX Daten zwischen Controllern austauschen- neue Frage AWT, Swing, JavaFX & SWT 7
ralfb1105 JavaFX Daten zwischen Controller "austauschen" AWT, Swing, JavaFX & SWT 65
B AWT Bot um Daten auf Website einzugeben und die Antwort zu bekommen AWT, Swing, JavaFX & SWT 2
L Daten bearbeiten ohne GUI zu blockieren - daten haltung/zurück geben AWT, Swing, JavaFX & SWT 15
ralfb1105 Swing JComboBox update der Daten AWT, Swing, JavaFX & SWT 8
ralfb1105 Swing Dynamischer Graph zum anzeigen Perfomance Daten AWT, Swing, JavaFX & SWT 35
D MySQL Daten in JTable anzeigen AWT, Swing, JavaFX & SWT 2
K TreeTableView (cellFactory) - wie Daten in Spalten einfügen AWT, Swing, JavaFX & SWT 0
A JTable mit Daten füllen AWT, Swing, JavaFX & SWT 1
J TableView Daten werden nicht ausgegeben AWT, Swing, JavaFX & SWT 9
A Swing Wie Daten in der Form speichern? Array oder ArrayList AWT, Swing, JavaFX & SWT 2
C Swing Daten in JTable wiedergeben per TableModel und MVC Pattern AWT, Swing, JavaFX & SWT 16
T JavaFX Model Daten übergeben AWT, Swing, JavaFX & SWT 4
D Swing Größe einer JComboBox im GridBagLayout aufgrund der maximalen Länge der enthaltenen Daten AWT, Swing, JavaFX & SWT 7
J JavaFX Tableview Daten hinzufügen aus anderer Klasse AWT, Swing, JavaFX & SWT 7
J Tableview Daten hinzufügen und aktualisieren AWT, Swing, JavaFX & SWT 5
S AWT Daten über TextField und Button in array speichern AWT, Swing, JavaFX & SWT 5
G Event Handling TableView daten in ein neues Fenster herauslesen? AWT, Swing, JavaFX & SWT 3
S JavaFX (Best Practise) Daten zwischen Controllern austauschen AWT, Swing, JavaFX & SWT 1
thet1983 JavaFX TableView Objekt Daten anzeige AWT, Swing, JavaFX & SWT 2
L JavaFX Verzögerung beim Laden von Daten AWT, Swing, JavaFX & SWT 6
L Daten in neuem Fenster AWT, Swing, JavaFX & SWT 2
Tort-E JavaFX Daten an WebView Komponente AWT, Swing, JavaFX & SWT 1
I JTable: Doppelklick auf Table soll neues Fenster öffnen und Daten aus JTable anzeigen AWT, Swing, JavaFX & SWT 4
S JTable Daten aus Array AWT, Swing, JavaFX & SWT 9
M Java FX Daten an Controller übergeben AWT, Swing, JavaFX & SWT 3
S JList ist leer, aber DefaultListModel hat die Daten? AWT, Swing, JavaFX & SWT 9
M JavaFX Von FXML-Controllerdatei Daten zurückgeben AWT, Swing, JavaFX & SWT 6
F JavaFX Daten aus Tabelle in ComboBox AWT, Swing, JavaFX & SWT 9
B Swing JTable mit Daten - Reihen-Größe anpassen AWT, Swing, JavaFX & SWT 0
D Applet GWT speichert Daten nicht in Datenbank AWT, Swing, JavaFX & SWT 2
S SWT In Listen den Einträgen Daten zuordnen AWT, Swing, JavaFX & SWT 2
T SWT Table (mit Spinner Spalte) Daten auslesen AWT, Swing, JavaFX & SWT 4
F Swing JTable: Daten voreinstellen AWT, Swing, JavaFX & SWT 4
B Daten in eine JTable schreiben AWT, Swing, JavaFX & SWT 3
H Swing JfreeChart aktualisieren - mit daten aus thread AWT, Swing, JavaFX & SWT 3
J valueChanged()-Methode liefert unbrauchbare Daten AWT, Swing, JavaFX & SWT 4
B Datenübergabe zwischen Tabs und Daten speichern AWT, Swing, JavaFX & SWT 2
D SWT TreeViewer: Daten aus Model gelöscht... trotzdem noch im Baum AWT, Swing, JavaFX & SWT 4
D Daten von JDialog an JTable in JFrame übergeben AWT, Swing, JavaFX & SWT 7
O JTable zeigt die alte Daten wieder AWT, Swing, JavaFX & SWT 23
H JTable zeigt keine Daten an AWT, Swing, JavaFX & SWT 5
C Swing JTable Daten einfügen AWT, Swing, JavaFX & SWT 6
Ollek IndexOutOfBoundsException bei neuen Daten in JTable AWT, Swing, JavaFX & SWT 13
J Swing JTable-Daten Speichern und bei zeilen-änderung beibehalten. AWT, Swing, JavaFX & SWT 6
A Daten umherschieben zwischen zwei Klassen AWT, Swing, JavaFX & SWT 40
L [SWT] Daten und Bilder drucken AWT, Swing, JavaFX & SWT 2
M Trotz richtiger Daten, falsches Bild wird gezeichnet?! AWT, Swing, JavaFX & SWT 4
O JFrame: Daten alle paar Sekunden aktualisieren AWT, Swing, JavaFX & SWT 3
C Daten aus DB -> JTable aktualisieren klappt nicht AWT, Swing, JavaFX & SWT 16
A Swing(Daten zugreifen) AWT, Swing, JavaFX & SWT 25
S JComboBox - veränderliche Daten AWT, Swing, JavaFX & SWT 6
T Daten mittels ComboBox in ein JTable adden AWT, Swing, JavaFX & SWT 7
Ollek Realisierung: JTable zur Laufzeit mit neuen Daten füllen AWT, Swing, JavaFX & SWT 3
GianaSisters Swing jTable Daten unsichtbar AWT, Swing, JavaFX & SWT 12
T JTree Daten in DB schreiben am besten SQL AWT, Swing, JavaFX & SWT 21
W Daten auf Textfeld in anderer Klasse verwenden AWT, Swing, JavaFX & SWT 4
T Daten der gesamten Woche anzeigen AWT, Swing, JavaFX & SWT 2
D Problem mit JFileChooser -> Daten werden mit anführungsstriche in JTable geschrieben AWT, Swing, JavaFX & SWT 8
H JList zeigt die Daten aus dem Array nicht an! AWT, Swing, JavaFX & SWT 13
E Daten von JDialog nach JFrame übertragen AWT, Swing, JavaFX & SWT 4
K TableModel mit Daten aus Datenbank füllen AWT, Swing, JavaFX & SWT 7
M JTree mit eigenen Knoten - Zugriff auf Daten AWT, Swing, JavaFX & SWT 6
L Swing Daten in JTable aktualisieren AWT, Swing, JavaFX & SWT 5
H Swing Tabelle nach Klick auf Button mit Daten füllen? AWT, Swing, JavaFX & SWT 2
B Swing JList Daten löschen AWT, Swing, JavaFX & SWT 13
R Swing XML Datei in JTree, Problem mit Daten einlesen AWT, Swing, JavaFX & SWT 34
A SWT: Daten in Raster mit Gitternetzlinien darstellen AWT, Swing, JavaFX & SWT 7
C Swing JTextField-Daten über mehrere Dialoge AWT, Swing, JavaFX & SWT 18
K TableModel Daten übergeben AWT, Swing, JavaFX & SWT 9
Milady Swing Änderung von Daten mit sql AWT, Swing, JavaFX & SWT 2
J Daten aus einer Textdatei in ArrayList holen AWT, Swing, JavaFX & SWT 9
X Swing Daten aus Vector ins TableModel ?? AWT, Swing, JavaFX & SWT 12
T Swing Liste von Daten anzeigen AWT, Swing, JavaFX & SWT 4
S Swing Daten aus Datenbank in JTable AWT, Swing, JavaFX & SWT 2
E JCombobox mit Daten aus DB füllen AWT, Swing, JavaFX & SWT 9
L Daten werden in JTable nicht angezeigt:( AWT, Swing, JavaFX & SWT 6
Milady Annzeigen alle Daten aus der Tabelle AWT, Swing, JavaFX & SWT 6
P Swing Liste von Daten auf JFrame AWT, Swing, JavaFX & SWT 6
E Daten aus sortierter Tabelle lesen AWT, Swing, JavaFX & SWT 2
X Swing JList -> Daten anders darstellen als im Model hinterlegt -> möglich ? AWT, Swing, JavaFX & SWT 9
X Doppelte Daten in DefaultListModel unterbinden AWT, Swing, JavaFX & SWT 3
ModellbahnerTT SWT Daten zur nächsten WizardPage senden AWT, Swing, JavaFX & SWT 4
J Daten in JTable nach Sortierung auslesen AWT, Swing, JavaFX & SWT 2
hdi Swing JTable & Filtern: Daten nicht in der View AWT, Swing, JavaFX & SWT 2
S JTable Bug - eingegebene Daten werden falsch geparst :( AWT, Swing, JavaFX & SWT 4
L AWT Daten vom Dialog an Frame senden AWT, Swing, JavaFX & SWT 3
hdi Swing JTable: Löschen vom Daten im Model AWT, Swing, JavaFX & SWT 7
U JTable mit Daten aus einer HashMap füllen AWT, Swing, JavaFX & SWT 8
S Swing Bei Klick auf OK Daten übergeben AWT, Swing, JavaFX & SWT 6
A Daten aus einem Frame werden im nächsten nicht gesehen AWT, Swing, JavaFX & SWT 17

Ähnliche Java Themen


Oben