Ich versuche, den Tooltip meiner JTableHeader
zeigt die Breite der Spalte es gehört, aber es funktioniert nicht. Der Tooltip wird nicht angezeigt.Tooltips von JTableHeader zeigt nicht die Breite seiner Spalte
Hier ist mein JTableHeader
:
myTable.setModel(new DefaultTableModel(new Object[][] {{ label1, label2, label3, label4} },
new String[] { "foo", "bar", "foo bar", "bar foo" }));
final JTableHeader header = new TableHeaderTooltipWidth(myTable.getColumnModel());
header.setReorderingAllowed(false);
header.setResizingAllowed(true);
TableHeaderTooltipWidth
ist eine Unterklasse von JTableHeader
, wo ich die Methode überschreiben public String getToolTipText(MouseEvent e)
, nachdem die Official Tutorial How to use Tool tips lesen.
package gui.paneles.elementos;
import java.awt.event.MouseEvent;
import javax.swing.table.JTableHeader;
import javax.swing.table.TableColumnModel;
public class TableHeaderTooltipWidth extends JTableHeader {
private static final long serialVersionUID = 1L;
public TableHeaderTooltipWidth() {
}
public TableHeaderTooltipWidth(TableColumnModel model) {
super();
}
@Override
public String getToolTipText(MouseEvent e) {
int col = columnAtPoint(e.getPoint());
return String.valueOf(this.getColumnModel().getColumn(col).getPreferredWidth());
}
}
Aber die Tooltips wird nicht angezeigt. Jede Hilfe wäre willkommen. Vielen Dank!
Haben Sie tootip-Komponente TooltipManager.registerComponent() registriert? – agilob
Ich weiß nicht, wie ich es tun soll, noch hatte das Tutorial es erwähnt. Bitte antworten Sie, wenn Sie mehr darüber wissen. Der [Doc] (https://docs.oracle.com/javase/7/docs/api/javax/swing/ToolTipManager.html#registerComponent (javax.swing.JComponent)) sagt: ** Registriert eine Komponente für das Tooltip-Management . Dadurch werden Tastenbindungen registriert, um den Tooltip-Text nur dann anzuzeigen und auszublenden, wenn die Komponente Fokusbindungen aufweist. Dies geschieht, damit Komponenten, die normalerweise nicht fokusierbar sind, wie z. B. JLabel, nicht durch den Aufruf dieser Methode fokusverfahrbar gemacht werden. ** Ich weiß nicht, ob es offen ist. – FaithReaper
Hier zu erwähnen @agilob – FaithReaper