我有觸發與功能:獲得的JTable從它的TableModel
public void tableChanged(TableModelEvent e){...}
我從TableModelEvent與得到的TableModel:
TableModel model = (TableModel)e.getSource();
但我需要的JTable中的TablecellBalloonTip使用cosntructor。我如何從TableModel獲取JTable?
我有觸發與功能:獲得的JTable從它的TableModel
public void tableChanged(TableModelEvent e){...}
我從TableModelEvent與得到的TableModel:
TableModel model = (TableModel)e.getSource();
但我需要的JTable中的TablecellBalloonTip使用cosntructor。我如何從TableModel獲取JTable?
你不能直接從事件中獲取它。您將偵聽器安裝到模型中,而不是表本身。該模型沒有對錶格的引用。實際上,同一個模型可能會被多個表格重複使用。所以你必須將引用存儲在其他地方。如果你只有一個表,那麼這應該工作:
final JTable table = new JTable();
table.getModel().addTableModelListener(new TableModelListener() {
@Override
public void tableChanged(TableModelEvent e) {
table.doSomething();
}
});
否則,如果你有一個以上的表,你可以簡單地創建他們每個人就像上面單獨的偵聽器。
感謝您的鼓勵 –
您需要將JTable
實例保存在某處,以備後用。可能會作爲panel
實例變量。
在MVC中,Model
沒有綁定到特定的視圖或控制器,因此你不能從Model
得到它 - 這是非常期待的。
你可能有一點具體,你想display工具提示TableCell?還是別的什麼? – mKorbel
你不能,你不想 - 閱讀一些關於Swing架構的基本文章來理解爲什麼不。不,我不是在開玩笑 - 如果你不知道這些部件應該如何使用,你的搖擺的生活將會是悲慘的;-) – kleopatra