Datenbank, Tabel und Buttons

Hallo Javafreaks und -fans,

Aktuell will ich eine Tabelle möglichst in einem Applet ausgeben. Eine Tabelle ist ja kein Problem. In jeder Zeile gebe ich einen Button an, der dann zu einer untergeordneten Tabelle führt, Der Handler läuft ebenfalls. Damit nach Knopfdruck die neue geladene Tabelle auch dargestellt wird, muss ich RELOAD drücken. Außerdem gibt es ja kein ClearScreen und so wird die neue Tabelle zusätzlich zur alten dargestellt.

JTabel hat mir bisher nicht weiter geholfen, da erstens keine Button einfügbar sind und zweitens ich nicht glaube, dass unterschiedlich lange Tabellen gehandelt werden können.

Wer kann mir Rat geben?

Dankend Dennis

Mir scheint das Problem am besten mit Swing lösbar zu sein. Wenn due den TableContentandler so schreibst, daß der Knopfdruck zu einem repaint() führt d.h. nachdem du den neuen Table aufgebaut hast. Zum darstellen des Tables würde ich den oberen table im Speicher halten (als ein parent feld oder in einem vector mit allen gegebenen tables) und den unteren an Stelle des oberen zum parent-component adden.
Ich habe eine Anwedung mit einem JTree und einem JTable. Bei klick auf ein Blatt des JTrees wird win neuer Table angeziegt. Das klappt prima mit verschieden langen tabellen und die Actionlistener habe ich pro Spalte konstruiert.

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]

Hallo,

in der Spalte die du für die Steuerung verwenden möchtest muß man einen Tablecellrenderer einsetzten der es die erlaubt dort einen Button anzuzeigen. Diesem Butten kannst du alle eigenschaften geben die du für die Navigation benötigst.

gruß
Thoams

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]

Hallo,

in der Spalte die du für die Steuerung verwenden möchtest muß
man einen Tablecellrenderer einsetzten der es die erlaubt dort
einen Button anzuzeigen. Diesem Butten kannst du alle
eigenschaften geben die du für die Navigation benötigst.

gruß
Thoams

Es ist nicht notwendig Buttons einzufügen. Du kannst auch das Selection-Event einer Cell benutzten, um den nächsten Table zu zeigen…
Das Problem mit den drüber gezeichneten Tabellen solltest du mit Component.setVisible(fals); also mit myJTreeParent.setVisible(false); in den Griff bekommen. Diese Tabellen werden auf die gleiche Weise gezeigt (myJTable.setVisible(true):wink:

Also für den Table das geeignete Selection Model (Zeilen-, Spalten- oder Zellenweise) und einen MouseListener schreiben, der im Falle eines Eizelenklicks die darunter liegende Tabelle öffnet.

table.addMouseListener(new MouseAdapter()
 {
 public void mouseClicked(MouseEvent e)
 {
 table\_mouseClicked(e);
 }
 });

table.getTableHeader().addMouseListener(new MouseAdapter()
 {
 public void mouseClicked(MouseEvent e)
 {
 tableHeader\_mouseClicked(e);
 }
 });


//+++++++++++++++++++++++++++++++++++++++++++++++++++++++
// Mouse click at table
//+++++++++++++++++++++++++++++++++++++++++++++++++++++++
private void table\_mouseClicked(MouseEvent e)
{
 final Point p= e.getPoint();

 int x= table.getLocationOnScreen().x+p.x;
 int y= table.getLocationOnScreen().y+p.y;

 // get the selected object
 final int row= table.getSelectedRow();
/\* und dann ein neunen Table erstellen den alten nicht sichtbar schalten ... \*/
}

Raimund