JPanel mit JTable

Kenan89

Bekanntes Mitglied
Hallo,
ich habe ein Problem:

Ich habe 2 Klassen: einer erbt von JPanel und der andere von Abstract Table Model.

Die Klasse, die von AbstractTableModel erbt, soll in das JPanel eingefügt werden.
Leider kriege ich das nicht hin.

Momentan mache ich das so:

Java:
public class J_Panel extends JPanel{

public J_Panel(){

add(new J_Table(null, null));

}


}


public class J_Table extends AbstractTableModel{

public J_Table(String[][] rows, String[] cols){

AbstractTableModel xy = new AbstractTableModel(rows, cols);
JTable table = new JTable(xy);


}

}

Die Frage ist, wie aktualisiert sich die Tabelle, wenn man Werte einträgt? Denn wie ihr seht, habe ich die Tabelle am Anfang mit null, null eingefügt und später sollen in einer extra Klasse Werte aus der Datenbank ausgelesen und per Parameter an den Konstruktor von J_Table gegeben werden, damit dieser diese in die Tabelle hinzufügt.
 
M

Marcinek

Gast
Hi,

das Model ist dazu da, damit ein JTable die Werte darstellen kann.

Du kannst kein TableModel in ein Panel einfügen, sondern ein JTable mit dem Model in ein JPanel.

Dafür gibt es doch bestimmt Tutorials im Netz. So wie dein erster ansatz ist, glaube ich dass du noch bissel was lesen musst.
 

Kenan89

Bekanntes Mitglied
Aha, danke für den Link.

Jetzt habe ich den Code dementsprechend angepasst:

Die Klasse J_Table schaut jetzt so aus:

Java:
public class J_Table extends JTable{

public J_Table(String[][] rows, String[] cols){

...
AbstractTableModel model = new AbstractTableMode(rows, cols);
JTable table = new JTable(model);
JScrollPane scrollbar = new JScrollPane(table);
...
}

}

Wie gesagt, am Anfang existieren keine Daten in der Tabelle und werden nachgeladen aus der Datenbank, nachdem man ein Button angeklickt hat.

Wie kann ich dieses Nachladen darstellen? Denn die Werte sind schon in den Arrays gespeichert, das habe ich mit println herausgefunden.
 
C

Camino

Gast
Am besten schaust du dir das Tutorial erst mal noch ausführlicher an, um einen richtigen Umgang mit der Tabelle hinzukriegen. Da gibt es dann auch ein Kapitel "Wie kommen Daten in die Tabelle?". Du könntest dir am besten eine eigene Klasse abgeleitet vom TableModel erstellen, in der dann die Daten aus der Datenbank holen und in eine Datenstruktur schreiben, und dann aktualisiert sich die JTable mit den neuen Daten.
 

Kenan89

Bekanntes Mitglied
Okay, ich will das Thema von ganz neu erarbeiten.

Habe eine Klasse J_panel, die die klasse J_table addet.

J_Table schaut so aus:

Java:
public class J_Table extends JTable{

	public J_Table(){
		String[] columns = new String[]{"Spalte1", "Spalte2"};
		String[][] rows = new String[][]{{"Test1.1", "Test1.2"},{"Test2.1","Test2.2"}};
				
 		DefaultTableModel model = new DefaultTableModel(rows,columns);
		JTable table = new JTable(model);
			
	}

}

Leider wird die Tabelle nicht angezeigt. Ich denke es liegt daran, weil ich in der Klasse JTable eine neue Tabelle definiere.
Irgendiwe müsste es doch gehen, der Klasse per add, oder set den DefaultTableModel zuzuweisen.


Danke im voraus.


EDIT: Es wird nur ein weiseer Hintergrund angezeigt.
 
C

Camino

Gast
Eben. Deine Klasse ist doch durch das extends JTable selbst schon die Tabelle. Du könntest innerhalb dieser Klasse das Model mit this.setModel(model) zuweisen.
 

Kenan89

Bekanntes Mitglied
Okay, ich habe nun die Datenbankeinträge in 2d-Array rows und normales Array cols gespeichert.
Das geschieht in einer Extra Klasse, die auf die Datenbank zugreift.
Davor wurde die Klasse, die von JTable erbt mit rows 0 und cols 0 in den JPanel eingefügt.

So, durch folgende Struktur habe ich versucht, die werte der arrays dem DefaultTableModel hinzuzufügen und ich denke, das
hat auch geklappt. Nur aktualisiert sich die Tabelle nicht, sondern zeigt immer noch leeren weissen HIntergrund.

Java:
for(int i=0; i<rows.length; i++){
J_Table.model.addRow(rows[i]);
}

for(int i=0; i<cols.length; i++){
J_Table.model.addColumn(cols[i]);
}

J_Table.setModel(model);

Ihr seht, nachdem ich dem DefaultTableModel model die Variablen zugeordnet habe, ordne ich model am ende noch einmal der J_Table. Trotzdem wird die Tabelle nicht neu gezeichnet. Der Grund ist, da sie schon am Anfang durch den Konstruktor gezeichnet wurde.


EDIT: Problem gelöst.Es funktioniert irgendwie nicht, weil noch die zu überschreibenden Methoden im Code standen(getValueAt, ...).

Jetzt muss ich in der Klasse, die von JTable erbt irgendwie ein JScrollPane einfügen.
 
Zuletzt bearbeitet:
C

Camino

Gast
Ich würde nur das TableModel in eine eigene Klasse auslagern (je nachdem, wie umfangreich die DAten sind, die in die Tabelle sollen, ist das besser). Für die JTable würde ich keine eigene Klasse anlegen, sondern die Tabelle dann im JPanel erstellen. Dein TableModel kannst du dann entweder vor der Tabelle erstellen und der Tabelle im Konstruktor übergeben oder später erzeugen und dann der Tabelle mit setModel(model) hinzufügen. Wenn du nun Daten im Model änderst und diese in der JTable aktualisieren möchtest, gibt es für das TableModel mehrere Methoden, die mit fire... anfangen.
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
B JPanel -JTable Java Basics - Anfänger-Themen 2
P JPanel in JTable einfügen Java Basics - Anfänger-Themen 23
X JTable in JPanel in JTabbedPane mouseevent von jtable kommt nicht durch Java Basics - Anfänger-Themen 3
richis-fragen Optisch JPanel BorderLayout vertikaler Rand dicker als horizontaler Rand Java Basics - Anfänger-Themen 4
N Klassen Hintergrundfarbe in JPanel ändert sich nicht Java Basics - Anfänger-Themen 3
J JSON mit einem JPanel Java Basics - Anfänger-Themen 3
J Ein mit UI-Designer erstelltes JPanel einblenden Java Basics - Anfänger-Themen 0
J Eine theoretische Frage zur Praxis - JPanel oder Canvas Java Basics - Anfänger-Themen 5
J Beim Start des Programms zB. eine Linie in JPanel ausgeben Java Basics - Anfänger-Themen 4
C mehrere JPanel in ein JFrame bringen Java Basics - Anfänger-Themen 9
M HILFE JPanel - Graphics Java Basics - Anfänger-Themen 1
B Scrollbares Fenster (JScrollPane) mit JPanel scrollt nicht Java Basics - Anfänger-Themen 3
Zeppi JPanel responsive Grid Java Basics - Anfänger-Themen 0
J JPanel in JScrollPanel Java Basics - Anfänger-Themen 4
Elyt JPanel als HintergrundBild Java Basics - Anfänger-Themen 7
W 2 JPanel in einem JFrame Java Basics - Anfänger-Themen 4
B Wie kann man an ein JPanel eine Scrollbar anheften? Java Basics - Anfänger-Themen 8
O Swing JPanel Java Basics - Anfänger-Themen 4
CptK Klassen JPanel nach Ablauf der Spielzeit neuladen Java Basics - Anfänger-Themen 2
S JPanel wird nicht angezeigt Java Basics - Anfänger-Themen 1
D Animation JPanel Java Basics - Anfänger-Themen 1
M JLabels "verrutschen" beim übergeben von JPanel Java Basics - Anfänger-Themen 2
D Auf angeklicktes JPanel zugreifen Java Basics - Anfänger-Themen 5
D JPanel mehrere Formen zeichnen Java Basics - Anfänger-Themen 5
D JPanel passt die Größe nicht an Java Basics - Anfänger-Themen 22
Y Webinhalt JPanel Java Basics - Anfänger-Themen 6
D Erste Schritte JPanel verschiebt Fenster via setVisible Java Basics - Anfänger-Themen 5
Dechasa Interface JFrame mit mehreren Übereinander liegenden JPanel Java Basics - Anfänger-Themen 5
S JPanel variablenabhängig erstellen Java Basics - Anfänger-Themen 13
J Methoden Dinge auf einem JPanel paltzieren Java Basics - Anfänger-Themen 1
Z JPanel wird zweimal hinterinander gezeichnet.. Wieso? Java Basics - Anfänger-Themen 4
F JFrame resize verschiebt JPanel Java Basics - Anfänger-Themen 3
A altes JPanel entfernen und neues öffnen Java Basics - Anfänger-Themen 5
I A0-Format in jpanel anzeigen Java Basics - Anfänger-Themen 1
R NullPointerException wegen JPanel oder doch nicht ? Java Basics - Anfänger-Themen 7
J Probleme mit eigenem JPanel (IDE Eclipse) Java Basics - Anfänger-Themen 4
S JPanel wird versetzt auf JFrame gelegt Java Basics - Anfänger-Themen 2
V jab ich eclipse verrückt gemacht :D ? array Jpanel, Jlabel Grafik Fehler / Frage Java Basics - Anfänger-Themen 5
R Focus auf JPanel im Thread Java Basics - Anfänger-Themen 9
I Problem mit JPanel Java Basics - Anfänger-Themen 0
B JPanel ändert die Hintergrundfarbe nicht Java Basics - Anfänger-Themen 2
F Threads funktionieren auf JPanel nicht Java Basics - Anfänger-Themen 1
C JPanel in MessageDialog Java Basics - Anfänger-Themen 1
B JPanel/JFrame in ein Applet umwandeln (Webfähig) Java Basics - Anfänger-Themen 7
S Inhalt von JPanel erst nach Resize sichtbar Java Basics - Anfänger-Themen 2
M Listener einerm JPanel hinzufuegen Java Basics - Anfänger-Themen 3
gamebreiti Methoden JPanel nach clearAll() und add neu zeichnen Java Basics - Anfänger-Themen 1
S vom JPanel aus durch Mouselistener Internet aufrufen Java Basics - Anfänger-Themen 6
Z JPanel bleibt leer Java Basics - Anfänger-Themen 2
E Bild per Verzeichnis/JFileChooser auf JPanel laden Java Basics - Anfänger-Themen 13
Q JPanel Java Basics - Anfänger-Themen 2
K Erste Schritte jpanel in einer klasse auslagern Java Basics - Anfänger-Themen 3
I Anfängerfrage JPanel repaint() Java Basics - Anfänger-Themen 6
N String auf JPanel bewegen Java Basics - Anfänger-Themen 6
K Erste Schritte Jframe Im Jpanel Java Basics - Anfänger-Themen 4
S Layout mit JPanel in JScrollPanel funktioniert nicht Java Basics - Anfänger-Themen 3
S JPanel drucken -> PrinterException Java Basics - Anfänger-Themen 2
H JPanel Hintergrund transparent setzen? Java Basics - Anfänger-Themen 10
A Input/Output Hashmap in einem JPanel via JList anzeigen Java Basics - Anfänger-Themen 8
L zoomen aus jpanel Java Basics - Anfänger-Themen 7
P Bekomme in meinen JPanel nur eine JComponente angezeigt Java Basics - Anfänger-Themen 7
A Methoden repaint() zeichnet JPanel falsch Java Basics - Anfänger-Themen 3
R JFrame über einen JPanel Java Basics - Anfänger-Themen 5
I Veränderungen am JPanel vom JDialog aus Java Basics - Anfänger-Themen 6
F JPanel zu klein Java Basics - Anfänger-Themen 5
D GUI - Objekte in JPanel nach oben schieben Java Basics - Anfänger-Themen 2
S JPanel wird nicht eingefügt Java Basics - Anfänger-Themen 3
P Netbeans Platform - JLabel und JPanel setLocation Problem Java Basics - Anfänger-Themen 2
I JPanel in JPanel Java Basics - Anfänger-Themen 2
A Zugriff auf Komponente innerhalb einer JPanel Java Basics - Anfänger-Themen 8
J Auf einem JPanel ein JFrame platzieren Java Basics - Anfänger-Themen 10
S JPanel anzeige Java Basics - Anfänger-Themen 2
propra Wie mache ich einem JPanel mein bereits instanziertes Model bekannt Java Basics - Anfänger-Themen 9
T Zugreifen auf JPanel Java Basics - Anfänger-Themen 4
K JPanel auslagern Java Basics - Anfänger-Themen 9
J Paint Methode von JPanel aufrufen Java Basics - Anfänger-Themen 15
T Tastendruck simulieren in JPanel Java Basics - Anfänger-Themen 3
E Erste Schritte Objekte werden in JPanel angedockt und maximiert Java Basics - Anfänger-Themen 7
M Componenten auf JPanel anzeigen Java Basics - Anfänger-Themen 2
F JPanel als JPG - weisse Fläche Java Basics - Anfänger-Themen 9
L Image laden und auf jPanel ausgeben Java Basics - Anfänger-Themen 7
M JLabel auf JPanel positionieren Java Basics - Anfänger-Themen 8
M Verständnisfrage zu JPanel Java Basics - Anfänger-Themen 3
M MouseListener funkioniert auf JPanel nicht Java Basics - Anfänger-Themen 8
D JPanel + ein JLabel Java Basics - Anfänger-Themen 8
B JPanel-Oberfläche speichern Java Basics - Anfänger-Themen 9
P GUI, JPanel Java Basics - Anfänger-Themen 7
H JPanel in andere Klasse übergeben Java Basics - Anfänger-Themen 7
D Grösse eines JPanel hinsichtlich LayoutManager festlegen Java Basics - Anfänger-Themen 4
B JPanel über anderem JPanel Java Basics - Anfänger-Themen 6
F zeichnen in JPanel Java Basics - Anfänger-Themen 7
F Unterschied JPanel und JFrame Java Basics - Anfänger-Themen 5
U JPanel dynamisch gestalten Java Basics - Anfänger-Themen 7
H Zeichnen in JPanel Java Basics - Anfänger-Themen 8
K Auf JPanel Zeichnen Java Basics - Anfänger-Themen 8
C jPanel im jPanel verändern Java Basics - Anfänger-Themen 15
B JPanel nachträglich verändern Java Basics - Anfänger-Themen 20
C JPanel erhält sporadisch keinen Fokus Java Basics - Anfänger-Themen 3
I repaint bei jpanel Java Basics - Anfänger-Themen 10
L JPanel vergrößern bis JScrollPane nicht mehr zu sehen Java Basics - Anfänger-Themen 7

Ähnliche Java Themen

Neue Themen


Oben