Morgen!
Ich bin gerade dabei, für meine JXTable Tooltipps für die Headerzeile zu erstellen und komm nicht weiter.
Gefunden habe ich:
wobei
Funktioniert auch ganz nett: Diese eine Column hat einen Button als Header, welcher den Tooltipp anzeigt.
Problem: Damit geht mir leider die Sortierfähigkeit der JXTable verloren, da der Button nun kein "echter" JXTable-Header mehr ist. Einen anderen passenden Datentyp habe ich dafür leider nicht gefunden.
Habt ihr Ideen?
EDIT:
Die von mir gesuchte Klasse war JXTableHeader. Es bleibt das Problem, dass ich dort den Text nicht setzen kann; jetzt wird zwar der Tooltipp angezeigt, aber nicht die Beschriftung des Head.
Ich bin gerade dabei, für meine JXTable Tooltipps für die Headerzeile zu erstellen und komm nicht weiter.
Gefunden habe ich:
Java:
tabelle = new JXTable(tabellenModel);
TableColumn c = tabelle.getColumnModel().getColumn(1);
MyTestRenderer myTestRenderer = new MyTestRenderer();
c.setHeaderRenderer(myTestRenderer);
wobei
Java:
public class MyTestRenderer extends DefaultTableCellRenderer {
@Override
public Component getTableCellRendererComponent(JTable table, Object value, boolean isSelected, boolean hasFocus, int row, int column) {
Component component = super.getTableCellRendererComponent(table, value, isSelected, hasFocus, row, column);
if (value != null && value instanceof Object) {
JXButton jbut = new JXButton();
jbut.setText(String.valueOf(value));
jbut.setToolTipText("Tool Tip Text for " + String.valueOf(value));
return jbut;
}
return component;
}
}
Funktioniert auch ganz nett: Diese eine Column hat einen Button als Header, welcher den Tooltipp anzeigt.
Problem: Damit geht mir leider die Sortierfähigkeit der JXTable verloren, da der Button nun kein "echter" JXTable-Header mehr ist. Einen anderen passenden Datentyp habe ich dafür leider nicht gefunden.
Habt ihr Ideen?
EDIT:
Die von mir gesuchte Klasse war JXTableHeader. Es bleibt das Problem, dass ich dort den Text nicht setzen kann; jetzt wird zwar der Tooltipp angezeigt, aber nicht die Beschriftung des Head.
Java:
public class MyTestRenderer extends DefaultTableCellRenderer {
private static final long serialVersionUID = 1L;
@Override
public Component getTableCellRendererComponent(JTable table, Object value, boolean isSelected, boolean hasFocus, int row, int column) {
Component component = super.getTableCellRendererComponent(table, value, isSelected, hasFocus, row, column);
if (value != null && value instanceof Object) {
JXTableHeader header = new JXTableHeader();
// TODO irgendwie Text setzen
header.setToolTipText("my tooltip");
return header;
}
return component;
}
}
Zuletzt bearbeitet: