ToolTipText für JTable mit MouseListener ohne anklicken?

  • Themenstarter Themenstarter Marcel_D
  • Beginndatum Beginndatum
Status
Nicht offen für weitere Antworten.
M

Marcel_D

Gast
Hallo zusammmen, ich habe folgende Frage,

Code:
table.addMouseListener(new MouseListener(){
			public void mousePressed(MouseEvent e)   {}
			public void mouseReleased(MouseEvent e)  {}
			public void mouseEntered(MouseEvent e)   {
				table.setToolTipText(""+table.getSelectedRow());
			}
			public void mouseExited(MouseEvent e)    {}
			public void mouseClicked(MouseEvent e)   {}
		});
}

Ich folgendes möglich : Ich gehe mit der Mause über eine Zeile und es wird mit ein ToolTipText angezeigt mit paar Infos ohne das ich die Zeile ankliche, also das man irgendwie automatisch erkennt, über welcher Zeile sich die Maus befindet ?
 
Oder: bei den TableCellRenderer den Tooltip setzten.

Oder: guck dir "JTable#getToolTipText" an, und überschreib die Methode.
 
Beni hat gesagt.:
Oder: bei den TableCellRenderer den Tooltip setzten.
da must du mir mal erklaeren wie du das machen willst, getToolTipText funktioniert imho auch nicht wirklich gut da du dir dann auch wieder die mouse koordinaten beschaffen musst um zu wissen auf welcher zelle du gerade bist
 
Wenn du einen (oder mehrere) eigene TableCellRenderer einsetzt, kannst du in der Methode "getComponent..." den Tooltip für eine Zelle setzen.
Einfach setTooltip bei der Component aufrufen, welche du zurückgibst.
 
also wenn ich einen renderer baue, gebe ich immer die selbe instanz einer componente raus sonnst mueste ich ja fuer ne 10x10 table schon 100 JLabels erzeugen. ist also unsinn wenn man renderer so verwendet wie man das tun sollte
 
*hack hack*

Code:
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import javax.swing.table.*;

/**
  *
  * Beschreibung.
  *
  * @version 1.0 vom 07.07.2005
  * @author
  */

public class TabelTest extends JFrame {
  // Anfang Variablen
    private JTable jta = new JTable(10, 10);
// Ende Variablen

  public TabelTest(final String title) {
    // Frame-Initialisierung
    super(title);
    addWindowListener(new WindowAdapter() {
      public void windowClosing(final WindowEvent evt) { System.exit(0); } });
    Container cp = getContentPane();
    cp.setLayout(new BorderLayout());

    // Anfang Komponenten
       TableCellRenderer tcr = new DefaultTableCellRenderer(){
          public Component getTableCellRendererComponent(JTable table, Object value, boolean isSelected, boolean hasFocus, int row, int column)
          {
            super.getTableCellRendererComponent (table, value, isSelected, hasFocus, row, column);
            setToolTipText (row + "/" + column);
            return this;
          }
       };
        jta.setDefaultRenderer(Object.class, tcr);
        getContentPane().add(jta);
    // Ende Komponenten

    pack();
    setVisible(true);
  }

  // Anfang Ereignisprozeduren
  // Ende Ereignisprozeduren

  public static void main(final String[] args) {
    new TabelTest("TabelTest");
  }
}

Teste selbst 😉
 
Genau das was ich wollte, ich habe :### und ???:L und nochmal :### und nichts gefunden.

Viele dank.....
 
Status
Nicht offen für weitere Antworten.

Zurück
Oben