Hi folks
folgendes Konstrukt, bei welchem ich mich des CardLayout - Beispiels vom User Michael hier bedient habe:
CardLayout;
Card1 und Card2 (es gibt natürlich noch weitere);
In Card 1 rufe ich Daten einer DB - Tabelle auf und speichere diese in ein JTable.
Wenn nun auf eine beliebige Zeile in der JTable geklickt wird, dann erscheint der markierte Datensatz in den jeweils dafür vorgesehenen txtFields. Der Datensatz besitzt natürlich eine ID, damit Änderungen durchführbar sind.
Das funktioniert auch gut, solange ich auf Card1 bleibe.
Nun möchte ich den oben angesprochenen Datensatz in der Card2 anzeigen lassen und das funktioniert dann leider nicht mehr.
Nachdem ich hier eine Klassenmethode aufrufe, sollte diese doch wohl von jeder Klasse - bzw. Card - aus, aufrufbar sein - zumindest meinen bescheidenen Java - Kenntnissen nach.
Zur Erklärung des Ansinnens:
Der Anwender kann gewünschte Datensätze aus der DB aufrufen und verändern.
Um sich besser orientieren zu können, sollte die ID und der Name des aktuellen Datensatzes auf jeder Card angezeigt werden.
Und um das auch zu realisieren, habe ich mir obigen Weg ausgedacht.
Warum bekomme ich nix angezeigt?
Ich hoffe dass Ihr mir helfen mögt...danke im Voraus
folgendes Konstrukt, bei welchem ich mich des CardLayout - Beispiels vom User Michael hier bedient habe:
CardLayout;
Card1 und Card2 (es gibt natürlich noch weitere);
Java:
/*
* Start.java
*/
...
// Erzeugen der jeweiligen Cards
cardLayout = new JPanel(new CardLayout());
cardLayout.add("CARD1", new Card1(this));
cardLayout.add("CARD2", new Card2(this));
public void actionPerformed(ActionEvent evt) {
flipCard(evt.getActionCommand());
}
private void flipCard(String name) {
CardLayout cl = (CardLayout) (cardLayout.getLayout());
cl.show(this.cardLayout, name);
}
In Card 1 rufe ich Daten einer DB - Tabelle auf und speichere diese in ein JTable.
Wenn nun auf eine beliebige Zeile in der JTable geklickt wird, dann erscheint der markierte Datensatz in den jeweils dafür vorgesehenen txtFields. Der Datensatz besitzt natürlich eine ID, damit Änderungen durchführbar sind.
Java:
/*
* Card1.java
*/
// ID des Datensatzes
public static String idFromTble;
....
// Fuellen der txtFields
public void resultInTxtFld() {
table.addMouseListener(new MouseAdapter() {
@Override
public void mouseClicked(MouseEvent evt) {
int row = table.getSelectedRow();
txtId.setText(table.getModel().getValueAt(row, 0).toString());
...
// Wert "id" fuer Card2 speichern
setIdFromTble(txtId.getText());
}
});
public static String getIdFromTble() {
return idFromTble;
}
public static void setIdFromTble(String idFromTble) {
KommList.idFromTble = idFromTble;
System.out.println("ID des Datensatzes: " + idFromTble); // Kontrollausgabe auf Konsole
}
Das funktioniert auch gut, solange ich auf Card1 bleibe.
Nun möchte ich den oben angesprochenen Datensatz in der Card2 anzeigen lassen und das funktioniert dann leider nicht mehr.
Java:
/*
* Card2.java
*/
public class AuswahlAnzeigen extends JPanel {
public AuswahlAnzeigen(ActionListener listener) {
this.setOpaque(false);
String str = KommList.getIdFromTble();
System.out.println("ID aus Card1: " + str);
...
}
}
Nachdem ich hier eine Klassenmethode aufrufe, sollte diese doch wohl von jeder Klasse - bzw. Card - aus, aufrufbar sein - zumindest meinen bescheidenen Java - Kenntnissen nach.
Zur Erklärung des Ansinnens:
Der Anwender kann gewünschte Datensätze aus der DB aufrufen und verändern.
Um sich besser orientieren zu können, sollte die ID und der Name des aktuellen Datensatzes auf jeder Card angezeigt werden.
Und um das auch zu realisieren, habe ich mir obigen Weg ausgedacht.
Warum bekomme ich nix angezeigt?
Ich hoffe dass Ihr mir helfen mögt...danke im Voraus
Zuletzt bearbeitet: