我正在嘗試使我的JTableHeader
的工具提示顯示它所屬的列的寬度,但它不起作用。工具提示未顯示。JTableHeader的工具提示未顯示其列的寬度
這裏是我的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
是JTableHeader
一個子類,我覆蓋的方法public String getToolTipText(MouseEvent e)
,看完後Official Tutorial How to use Tool tips。
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());
}
}
但是工具提示沒有顯示。任何幫助,將不勝感激。謝謝!
你有沒有註冊tootip組分TooltipManager.registerComponent()? – agilob
我不知道該怎麼做,教程也沒有提到它。請回答如果你知道更多關於它。 [Doc](https://docs.oracle.com/javase/7/docs/api/javax/swing/ToolTipManager.html#registerComponent(javax.swing.JComponent))說:**爲工具提示管理註冊一個組件。這將註冊鍵綁定以僅在組件具有焦點綁定時顯示和隱藏工具提示文本。這樣做是爲了讓通常不會焦點遍歷的組件(如JLabel)不會因爲調用此方法而成爲焦點可移動的。**我不知道它是否令人感到敬意。 – FaithReaper
在這裏提及你@agilob – FaithReaper