Zum Inhalt springen

ToolTipText in einem JTable


Nixaja

Empfohlene Beiträge

Hallo zusammen!

Gibt es eine Möglichkeit, in einem JTable Header pro Spalte einen ToolTipText zu setzen?

Ich habe in einer Tabelle relativ viele Spalten unterzubringen. Deswegen werde ich in den einzelnen Spaltenheadern Abkürzungen verwenden, die ich im ToolTipText erklären will.

Ich dachte eigentlich, dass das doch kein Problem sein könnte. Aber ich komm net hinter das Geheimnis.

Danke für eure Hilfe

Nixaja

Link zu diesem Kommentar
Auf anderen Seiten teilen

Also soweit ich weiß, musst du dir einen eigenen TableCellRenderer schreiben und die Klasse "DefaultTableCellRenderer" überschreiben. In dieser überschribst du dann die "getTableCellRendererComponent" - Methode und kannst da "setToolTipText" aufrufen. Das ganze funktioniert aber nur, weil der DefaultTableCellRenderer von JLabel erbt...

Grüße Peet...

Beispiel:


public final class MyTableHeaderRenderer extends DefaultTableCellRenderer {
public MyTableHeaderRenderer() {
super();
}

public Component getTableCellRendererComponent(JTable table,
Object value, boolean isSelected, boolean hasFocus, int row,
int column) {
// ToolTipText
this.setToolTipText("DER ToolTipText");
return this;
}
}
[/PHP]

Link zu diesem Kommentar
Auf anderen Seiten teilen

Hallo Peeter!

Mit dem DefaultTableCellRenderer wird aber auch mein momentaner Header ungültig. Und ich muss mich bei dem Tabellenaufbau an einen firmeninternen Standard orientieren.

Weist du vielleicht wie ich es schaffe, dass mein aktueller Header erhalten bleibt?

Danke

Lucie

Link zu diesem Kommentar
Auf anderen Seiten teilen

Erbt der "firmeninterne" Renderer auch von DefaultTableCellRenderer?

Wenn ja, dann nutze doch die Methode "setToolTipText(String)" so wie weiter oben gezeigt. ;)

Die ist dann schon mit dabei!

Oder du schreibst dir trotzdem noch einen eigenen TableHeaderRenderer und erbst aber von dem firmeninternen TableCellRenderer...

Dann musst du in der Methode "getTableCellRendererComponent" nur folgendes machen:


public Component getTableCellRendererComponent(JTable table,Object value, boolean isSelected, boolean hasFocus, int row, int column) {
super.getTableCellRendererComponent(table, value, isSelected,hasFocus, row, column);

// ToolTipText
this.setToolTipText("DER ToolTipText");
return this;
}
[/php]

Link zu diesem Kommentar
Auf anderen Seiten teilen

  • 3 Jahre später...

super vielen Dank, das hat mir auch weiter geholfen.

Jetzt habe ich aber noch eine Frage:

Mit

TableColumn tc = getColumnModel().getColumn(0);

for (int i=1; i!=getColumnModel().getColumnCount(); ++i) {

			TableColumn tc = getColumnModel().getColumn(i);

			tc.setCellRenderer(new TooltipCellRenderer());

}

Setze ich ja meinen TooltipCellRenderer für die komplette Spalte.

Kann ich diesen Renderer auch für eine einzelne Zelle setzen?

Sonst zeigt er mir ja bei jeder Spalte dieselbe Toolbox an.

Link zu diesem Kommentar
Auf anderen Seiten teilen

Dein Kommentar

Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...