Variabler ToolTip-Text in JTable

Status
Nicht offen für weitere Antworten.

kaory

Mitglied
Hallo :)

Ich möchte in meiner JTable einen ToolTipText anzeigen, der für jede Zeile (Zelle) variiert.
Die Daten für die ToolTip Anzeige sind in einem Array hinterlegt.

Ich nehme alle Editierungen (Schriftfarbe, Schriftart, etc.) in einem angepasstem DefaultTableCellRenderer vor.
Das klappt alles, nur der setToolTipText() nicht.

Kann mir jemand weiterhelfen?
Ich Danke Euch :)
 
B

Beni

Gast
Wie setzt du den ToolTip?

Also wenn ich mich recht erinnere müsste das doch so funktionieren (den CellRenderer des Tables etwas verändern)?
Code:
public class CellRenderer extends DefaultTableCellRenderer{
  public Component getTableCellRenderComponent( ... ){ // ok, du weisst schon welche Methode ich damit meine :-)

    setToolTipText( "Blabla" );
    return this;
  }
}
 

kaory

Mitglied
Beni hat gesagt.:
Wie setzt du den ToolTip?

Also wenn ich mich recht erinnere müsste das doch so funktionieren (den CellRenderer des Tables etwas verändern)?
Code:
public class CellRenderer extends DefaultTableCellRenderer{
  public Component getTableCellRenderComponent( ... ){ // ok, du weisst schon welche Methode ich damit meine :-)

    setToolTipText( "Blabla" );
    return this;
  }
}

hallo,

setToolTipText(toolTipText[row]);
toolTipText[] --> Array mit den Daten
row --> aktuelle Zeile der JTable


da ich noch das Array mit den Daten in den CellRenderer bekommen muss (die Daten selbst hole ich mir aus einer Datenbank) funktioniert mein Code so nicht.

Nun habe ich versucht beim Aufruf noch ein String Array mit anzuhängen
public Component getTableCellRendererComponent(JTable table, Object value, boolean isSelected, boolean hasFocus, int row, int column, String toolTip[])

das funktioniert aber auch nicht, ich bekomme nur den letzten Wert des Arrays als ToolTip für alle Zeilen angezeigt.

trotzdem schon mal vielen Dank für Deine Hilfe :)
 
B

Beni

Gast
Also: du kannst die Signatur von "getTableCellComponent" nicht verändern, weil sonst die Methode gar nicht aufgerufen wird.

Das kleine Prog unten zeigt jedenfalls, dass man für jede Zelle einen eigenen Tooltip setzen kann, an der JTable liegt es also nicht.

Also bleibt nur noch die Frage zu klären, wie du jeweils an die Tooltips der einzelnen Zeilen rankommst.

Und da musst du wohl irgendwie deine Datenbank mit dem Renderer verknüpfen, aber ich weiss ja nicht, wie du dein Progi aufgebaut hast.

Vielleicht kannst du sowas basteln?
Code:
public class Renderer extends...{
  private Datenbank db;
  public Renderer( Datenbank db ){
    this.db = db;
  }

  public Component getTableCellRendererComponent( ... ){

    setToolTipText( db.get... );
    return this;
  }
}


Tooltips funktionieren Zellenweise:
Code:
import java.awt.Component;

import javax.swing.JFrame;
import javax.swing.JScrollPane;
import javax.swing.JTable;
import javax.swing.table.DefaultTableCellRenderer;

public class Editor{
   public static void main( String[] args ){
      // Die Daten für das Table
      String[][] data = new String[][]{
            {"a", "b", "c", "d"},
            {"e", "f", "g", "h"},
            {"i", "j", "k", "l"}
      };
      
      // Die Column-Titles
      String[] title = new String[]{
            "A", "B", "C", "D"
      };
      
      // Das JTable initialisieren
      JTable table = new JTable( data, title );
      
      table.setDefaultRenderer( Object.class, new DefaultTableCellRenderer(){
      	/* (non-Javadoc)
		 * @see javax.swing.table.DefaultTableCellRenderer#getTableCellRendererComponent(javax.swing.JTable, java.lang.Object, boolean, boolean, int, int)
		 */
		public Component getTableCellRendererComponent(JTable table,
				Object value, boolean isSelected, boolean hasFocus, int row,
				int column) {

			super.getTableCellRendererComponent(table, value,
					isSelected, hasFocus, row, column);
			
			setToolTipText( value.toString() + " (das musst noch geschrieben werden)" );
			
			return this;
		}
      });
      
      JFrame frame = new JFrame( "Demo" );
      frame.getContentPane().add( new JScrollPane( table ) );
      frame.setDefaultCloseOperation( JFrame.EXIT_ON_CLOSE );
      frame.pack();
      frame.setVisible( true );
   }
}
 

Matflasch

Aktives Mitglied
Man kann auf einfache Art den ToolTip für jeden Zelle setzen:

Man erstellt sich einfach eine Klasse:

Code:
public class TableCell {
  private Object            Value                  = null;
  private String            ToolTipText            = null;
  private Color             foregroundColor        = null;
  private Color             backgroundColor        = null;
...
}

Da man dem TableCellRenderer ja ein Objekt übergeben kann, kann dies ein String sein, aber es kann auch das TableCell Objekt sein. Beim Packen der Daten packst du also alles jeweils in ein TableCell Objekt. Daraus machste dir dann das Objekt[][] was die Daten für die Table sind, oder per Vector, is ja egal.

Und den Renderer machste dann so in etwa...

Code:
public Component getTableCellRendererComponent(
        JTable Table,
        Object Value,
        boolean isSelected,
        boolean hasFocus,
        int Row,
        int Column) {

    TableCell tbc = (TableCell) Value;
		
    setText(tbc.getValue().toString());
    setToolTipText(tbc.getToolTipText());
...
    return this;
}

Mfg, Matflasch
 
B

Beni

Gast
Ich möchte ja nicht sagen, dass a) die Frage schon beantwortet war, und b) du hier Threads ausgräbst, die Monate alt sind :roll:
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
M Swing GUI mittels erben sowie variabler Dateninhalt AWT, Swing, JavaFX & SWT 1
S JFormattedTextField dezimal variabler Länge AWT, Swing, JavaFX & SWT 12
H TableView mit variabler Anzahl Spalten AWT, Swing, JavaFX & SWT 2
R TextPane mit variabler Größe AWT, Swing, JavaFX & SWT 8
D jTable mit variabler Zeilenanzahl AWT, Swing, JavaFX & SWT 5
R JLayeredPane - JPanel mit variabler Form AWT, Swing, JavaFX & SWT 4
J Variabler VariablenIdentifier - JCheckBox AWT, Swing, JavaFX & SWT 9
G Tabelle mit variabler Anzahl an Zeilen AWT, Swing, JavaFX & SWT 3
T Swing Tooltip-Delay funktioniert nicht immer. AWT, Swing, JavaFX & SWT 1
M JavaFX JAVAFX TreeItem mit Tooltip versehen AWT, Swing, JavaFX & SWT 4
M JavaFX Tooltip bei setOnMouseMoved Verständnisproblem AWT, Swing, JavaFX & SWT 6
V JFreeChart: Tooltip auf Knopfdruck anzeigen AWT, Swing, JavaFX & SWT 2
J JavaFX Tooltip Verzögerung beim ersten Anzeigen AWT, Swing, JavaFX & SWT 4
M Datenbanksätze in ToolTip laden AWT, Swing, JavaFX & SWT 4
Tom299 JavaFX Tooltip verbuggt? AWT, Swing, JavaFX & SWT 1
J JTabbedPane: table in new tab: tooltip benutzt die column-widths von table in erstem geöffneten tab AWT, Swing, JavaFX & SWT 17
P Image oder Icon auf Tooltip zeichnen AWT, Swing, JavaFX & SWT 4
P Vorteile von Tooltip nutzen (wird über allen anderen Objekten angezeigt) AWT, Swing, JavaFX & SWT 3
U drawLine mit Tooltip AWT, Swing, JavaFX & SWT 1
D Swing JCombobox - Tooltip Location ändern AWT, Swing, JavaFX & SWT 4
B JavaFX Tooltip auf ImageView AWT, Swing, JavaFX & SWT 6
U Tooltip Dauer setzen AWT, Swing, JavaFX & SWT 0
U ToolTip Größenänderung, passt sich erst beim zweiten Mal an AWT, Swing, JavaFX & SWT 6
F ToolTip mit Link zum anklicken AWT, Swing, JavaFX & SWT 2
S SWT: Drop-Down Menü-Einträge mit Tooltip hervorheben AWT, Swing, JavaFX & SWT 3
C ToolTip aktualisieren AWT, Swing, JavaFX & SWT 2
A SWT Tooltip soll nicht verschwinden, solange User mit Maus auf Control ist AWT, Swing, JavaFX & SWT 5
C Tooltip dynamisch setzen AWT, Swing, JavaFX & SWT 7
GianaSisters Swing jComboBox Tooltip funktioniert nicht AWT, Swing, JavaFX & SWT 17
6 ToolTip erzwingen AWT, Swing, JavaFX & SWT 6
R SWT Tooltip AWT, Swing, JavaFX & SWT 5
J jList, recht Maustast => Tooltip zu Element AWT, Swing, JavaFX & SWT 8
T Tooltip bei falscher Eingabe anzeigen AWT, Swing, JavaFX & SWT 2
hdi Problem mit ToolTip: Aussehen/Verzögerung AWT, Swing, JavaFX & SWT 7
P Tooltip "erzwingen" ? AWT, Swing, JavaFX & SWT 7
S Swing JTree in ScrollPane einen ToolTip geben AWT, Swing, JavaFX & SWT 2
Antoras Swing Tooltip permanet anzeigen AWT, Swing, JavaFX & SWT 5
W Verzögerung à la Tooltip bei mouseEntered AWT, Swing, JavaFX & SWT 19
G Tooltip anzeigen AWT, Swing, JavaFX & SWT 4
GilbertGrape scrollable Tooltip AWT, Swing, JavaFX & SWT 9
G Tooltip Text für ein Shape Objekt AWT, Swing, JavaFX & SWT 2
GilbertGrape JTable+Tooltip+Zeilenumbrüche AWT, Swing, JavaFX & SWT 7
M Tooltip anzeigen? AWT, Swing, JavaFX & SWT 3
J Anzeigedauer eines Tooltip? AWT, Swing, JavaFX & SWT 5
S Tooltip Frage AWT, Swing, JavaFX & SWT 3
G 'Spezieller' Tooltip, wenn JTable-Column zu schmal AWT, Swing, JavaFX & SWT 6
P JRE 6 -> ToolTip & mnemonic Anzeige AWT, Swing, JavaFX & SWT 4
G Tooltip Zeilenumbruch AWT, Swing, JavaFX & SWT 13
B ToolTip verändern / selbst gestalten AWT, Swing, JavaFX & SWT 3
F ToolTip auf Canvas AWT, Swing, JavaFX & SWT 2
S Tooltip auf Toolbar-Icon AWT, Swing, JavaFX & SWT 6
C Tooltip nur anzeigen, wenn JInternalFrame minimiert AWT, Swing, JavaFX & SWT 3
D Eigenes Tooltip AWT, Swing, JavaFX & SWT 5
M JTree: Tooltip wenn Text nicht vollständig angezeigt wird AWT, Swing, JavaFX & SWT 3
M Seltsames Verhalten Tooltip und JDialog AWT, Swing, JavaFX & SWT 8
I JTable, Tooltip, HTML AWT, Swing, JavaFX & SWT 2
S ToolTip an Mausposition anzeigen AWT, Swing, JavaFX & SWT 5
O Hintergrundfarbe beim ToolTip AWT, Swing, JavaFX & SWT 5
L JLabel als Tooltip AWT, Swing, JavaFX & SWT 3
G Tooltip aufpoppen lassen AWT, Swing, JavaFX & SWT 3
M Border in ToolTip AWT, Swing, JavaFX & SWT 5
F ToolTip über Line2D bzw. Rectangle2D AWT, Swing, JavaFX & SWT 5
R JTable: Jede Zelle mit eigenem ToolTip belegen AWT, Swing, JavaFX & SWT 5
G Tooltip sperrt MouseListener? AWT, Swing, JavaFX & SWT 6
V Tooltip Text auf Spaltenkopf (JTable) AWT, Swing, JavaFX & SWT 4
S Tooltip auf Kopf eine JTable? AWT, Swing, JavaFX & SWT 2
G ToolTip AWT, Swing, JavaFX & SWT 4
W Bei hinzufügen der Action verliert Button Text,Tooltip, etc AWT, Swing, JavaFX & SWT 5
S Tooltip mit Grafik AWT, Swing, JavaFX & SWT 2
N lightweight bei ToolTip AWT, Swing, JavaFX & SWT 2
T ToolTip AWT, Swing, JavaFX & SWT 3
R ToolTip länger aufrecht erhalten AWT, Swing, JavaFX & SWT 3
S ToolTip erweitern bei Swing (Mehrzeilig) AWT, Swing, JavaFX & SWT 2
M Tooltip / neues Fenster AWT, Swing, JavaFX & SWT 6
P JTextfield Text durch Keylistener verändern AWT, Swing, JavaFX & SWT 4
G Problem mit der Anzeige von jLabel. Unlesbar wenn der Text geändert wird. AWT, Swing, JavaFX & SWT 28
C JToggleButton disabled Text Color AWT, Swing, JavaFX & SWT 11
H JavaFX Label.Text mit bind an DoubleProperty binden AWT, Swing, JavaFX & SWT 3
H JList.setEnabled(false) - Text soll nicht grau sein AWT, Swing, JavaFX & SWT 2
FrittenFritze Text in Flying Saucer selectierbar machen AWT, Swing, JavaFX & SWT 0
Mojo7310 Ändern von Text in JLabel mit einem Button AWT, Swing, JavaFX & SWT 11
raeuchertofu Text von JTextfield und JLabel ändern AWT, Swing, JavaFX & SWT 2
H JavaFX Gedrehter Text auf Canvas (Positionierung) AWT, Swing, JavaFX & SWT 6
F Best-Practise: JTable Text in Zelle zu groß AWT, Swing, JavaFX & SWT 2
I Rich Text drucken AWT, Swing, JavaFX & SWT 0
B Text mit Absatz + OK-Button, der Fenster wieder schließt AWT, Swing, JavaFX & SWT 7
R Text vom Jlabel wird nicht angezeigt AWT, Swing, JavaFX & SWT 2
N Promt Text der Combobox AWT, Swing, JavaFX & SWT 0
M JavaFX javaFX Label-Text wird nicht gesetzt AWT, Swing, JavaFX & SWT 3
sascha-sphw JavaFX ListCell höhe verändert sich beim ändern der Text-Farbe AWT, Swing, JavaFX & SWT 14
N In Textdatei Text anfügen per GUI AWT, Swing, JavaFX & SWT 3
N Textdatei GUI, Text in Textarea anzeigen mehrere Zeilen AWT, Swing, JavaFX & SWT 1
R Swing JTextField nicht-kopierbarer Text AWT, Swing, JavaFX & SWT 1
S Text-Info in der Taskbar anzeigen AWT, Swing, JavaFX & SWT 15
E Warum wird Text im JTextArea erst am Programmende angezeigt ? AWT, Swing, JavaFX & SWT 1
S Swing JLabel Text mit der Zeit ändern AWT, Swing, JavaFX & SWT 1
Hatsi09 JButton text layout AWT, Swing, JavaFX & SWT 9
B Text im Tetfeld in einer TableView darstellen AWT, Swing, JavaFX & SWT 20
C JCheckBox disabled text color AWT, Swing, JavaFX & SWT 9
ralfb1105 JavaFX Wie Text Label in neuem Window von Main Stage setzen? AWT, Swing, JavaFX & SWT 6

Ähnliche Java Themen

Neue Themen


Oben