2013-12-20 65 views
0

因此,我閱讀了幾個有工具提示工作的線程,並試圖解決這個問題無濟於事。我不知道如何讓我的工具提示工作

import java.awt.event.MouseEvent;

public String getToolTipText(MouseEvent e) { 
    String tip = "tommy likes trucks"; 
    java.awt.Point p = e.getPoint(); 
    int rowIndex = FursJTable.rowAtPoint(p); 
    int colIndex = FursJTable.columnAtPoint(p); 
    int realColumnIndex = FursJTable.convertColumnIndexToModel(colIndex); 
    //if (description[realColumnIndex] = null || description[realColumnIndex] = "") { 
    // tip = null; 
    //} else { 
    // tip = description[realColumnIndex]; 
    //} 
    return tip; 
} 

if語句應該只是從我會成立了,但即使我剛纔設置的提示在代碼的開始並不在我的JTable中的任何位置顯示一個提示數組拉弦。所有的幫助表示讚賞。 :)

我還需要工具提示橫跨整個行。 但這仍然沒有關係,因爲我無法讓工具提示出現在任何地方。

+0

參見[*指定工具提示細胞*](HTTP://文檔.oracle.com/JavaSE的/教程/ uiswing /組件/ table.html#celltooltip)。 – trashgod

+0

您是否嘗試過使用setToolTipText方法? –

+0

我不是這樣做的。我很新的這個jtable的東西 – Jest

回答

0
int rowIndex = FursJTable.rowAtPoint(p); 
int colIndex = FursJTable.columnAtPoint(p); 
int realColumnIndex = FursJTable.convertColumnIndexToModel(colIndex); 

getToolTipText(...)方法是JTable的一部分。由於您重寫了JTable中的代碼,因此不需要引用實例變量。只需使用:

int rowIndex = rowAtPoint(p); 
int colIndex = columnAtPoint(p); 
int realColumnIndex = convertColumnIndexToModel(colIndex); 

此外,請遵循Java命名約定。變量名稱不應以大寫字符開頭。

如果您需要更多幫助,請發佈適當的SSCCE來證明問題。

編輯:延長組件覆蓋一個方法

一種方式是做這樣的事情:

JTable table = new JTable(...) 
{ 
    public String getToolTipText(MouseEvent e) 
    { 
     return "hello"; 
    } 
}; 
+0

我最初是這樣的,但它給了我「找不到符號」的錯誤。看來我把這個方法放在了錯誤的地方,但我不知道該把它放在哪裏。 – Jest

+0

@Jest,您需要擴展JTable來覆蓋該方法。請參閱編輯。 – camickr

+0

k所以我現在做了,但我不知道該寫什麼: JTable table = new JTable(here) – Jest

相關問題