在JTable中新增視覺化元件

2021-06-08 09:27:50 字數 1193 閱讀 7174

swing程式,今天還專門研究了一下怎麼在jtable中新增別的元件。一般情況下jtable只認string之類的,對swing中的元件是不認的。後來到網上搜了下,看到還是有不少人有這樣的迷惑。不過也有人提出了解決之道。 

jtable中有乙個tablemodel介面,預設情況下,有乙個defaulttablemodel實現。可以通過對tablemodel行列資料操作來達到對**操作。 

對於每乙個column還有個tablecolumnmodel。可以用table.getcolumnmodel()取得,這樣再在getcolumn( num ),就能取得tablecolumn,然後設定setcelleditor(new defaultcelleditor(new jcheckbox())),當你當tablemodel單元格中可編碼返回的是true,那麼你就會看到選擇的效果了。 

但是這樣還不夠,因為這樣的話,在**裡,顯示的還是true和false這樣的字串。並不會出現jcheckbox那個框和鉤。 

再設定setcellrenderer(new mytablerenderer()) 這是乙個實現了tablecellrenderer介面的jcheckbox。這樣table就會把內容顯示繪製交給jcheckbox了。 

完整的**是 :

private jtable inittable(jtable table) ,0);

dtm.addrow(new object );

table.setmodel(dtm);

tablecolumnmodel tcm = table.getcolumnmodel();

tcm.getcolumn(0).setcelleditor(new defaultcelleditor(new jcheckbox()));

tcm.getcolumn(0).setcellrenderer(new mytablerenderer());

tcm.getcolumn(0).setpreferredwidth(20);

tcm.getcolumn(0).setwidth(20);

tcm.getcolumn(0).setmaxwidth(20);

return table;

}private class mytablerenderer extends jcheckbox implements tablecellrenderer

}

滑鼠軌跡視覺化元件

舍友女朋友要做這個大作業,然而是c,我用python隨便實現了一下 主要是由於螢幕存在重新整理頻率,必須用平滑曲線實現,否則會出現間斷的現象。這裡讀取了兩次位置,然後鬆開滑鼠之後所有軌跡消失 本來是想做成漸變,但是技術實力不夠 十分簡潔,這也是py相對於c的優勢所在 import pygame,sy...

Flex視覺化元件開發

flex視覺化元件都繼承自uicomponent類 繼承結構 uicomponent sprite displayobjectcontainer 顯示物件容器 interactiveobject 互動物件 displayobject 顯示物件 eventdispatcher 事件分發器 object...

Flex視覺化元件效果控制

所有效果物件都支援兩個事件 effectstart 和 effectend,分別在效果開始的效果結束的時候進行事件觸發。當效果開始時觸發事件,事件物件的type屬性為effectevent.effect start。當效果結束時觸發事件,效果結束包括效果正常執行完畢或通過呼叫end方法打斷。事件物件...