java 板


LINE

※ 引述《mrker (ꬮ....)》之銘言: : 抱歉... 小弟又有問題了... : 承之前的描述 我最後是使用 : table1.getTableHeader() : .setColumnModel(table2.getTableHeader().getColumnModel()); : 讓兩個JTable的ColumnModel為一致 : 但會造成一個情況 : 譬如說某個欄位(假設是性別),我希望做到 : if ("MALE".equals(sex)) : 欄位.setBackground(Color.BLUE); : else if ("FEMALE".equals(sex)) : 欄位.setBackground(Color.RED); : 但問題來了,兩個JTable共用一個ColumnModel, : 會致使兩邊cell的任何UI異動,都會同步 : 因此問題又回到原點了,必須在TableHeader上做處理 : (因為對我的需求來說兩邊Header部分沒有差異) : 可以...再麻煩 指點一下嗎? 謝謝 Orz 你的意思是你希望兩個 table 內的對應的 column 所使用的 cell renderer 是各自獨立的? column model 所管理的 table column 可以指定該 column 所要使用的 cell renderer,但這個屬性可以是 null,故 JTable 本身還有另一個機制去決定 各 column 要怎麼做 rendering。 當 table column 本身沒有指定 cell renderer 時,JTable 另外會依照 column 所持有的數據的形態來決定該使用哪一個 cell renderer。 http://docs.oracle.com/javase/6/docs/api/javax/swing/JTable.html#setDefaultRenderer(java.lang.Class, javax.swing.table.TableCellRenderer) 建議你可以試著不要直接對 TableColumn 去設置 cell renderer,而是對 JTable 去設置 default renderer,適當配合 table model,是可以做到 JTable 內任一個 column 所使用的 cell renderer。 這種以 data type 來決定所使用的 cell renderer 的做法有時會有些麻煩,比如說 就數據的特性來說,某兩個 column 都是 Integer,而你要這兩個 column 以不同 的方式顯示數據,若你指定 Integer.class 的 default renderer 為 R,則 R 會 被拿來 render 這兩個 column,要嘛你可能採取讓 table model 回報其中一個 column 的 type 為 Object.class 來避開(這個解法會影響到其他是 Object type 的 column);要嘛你在 cell renderer 裡多下點功夫(render 會依據 rendered cell 所處的 column index 來處理)。 如果對 JTable 內的 cell 外觀做客製化是很重要,且其份量也高的話,我建議 你考慮使用 SwingX(https://swingx.java.net),他的 JXTable 是以 highlighter 來 decorate cell 的外觀,而 cell 是否要 highlight 的條件與特定 highlight 的 decoration 方式是分成兩個 aspect 去做,加上 hightlighter 可以混搭, 理論上再複雜的客製工作都做得出來。 --



※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 218.166.238.27
1F:推 mrker:講解得非常完整 謝謝!! 所以意思是 我兩個JTable可以使用同 12/09 17:45
2F:推 mrker:一個ColumnModel 但Renderer部分交給JTable實作 right? thx! 12/09 17:50
3F:推 dream1124:請問若要開發新的桌面視窗程式,SB大推薦SwingX還是FX2? 12/12 22:25







like.gif 您可能會有興趣的文章
icon.png[問題/行為] 貓晚上進房間會不會有憋尿問題
icon.pngRe: [閒聊] 選了錯誤的女孩成為魔法少女 XDDDDDDDDDD
icon.png[正妹] 瑞典 一張
icon.png[心得] EMS高領長版毛衣.墨小樓MC1002
icon.png[分享] 丹龍隔熱紙GE55+33+22
icon.png[問題] 清洗洗衣機
icon.png[尋物] 窗台下的空間
icon.png[閒聊] 双極の女神1 木魔爵
icon.png[售車] 新竹 1997 march 1297cc 白色 四門
icon.png[討論] 能從照片感受到攝影者心情嗎
icon.png[狂賀] 賀賀賀賀 賀!島村卯月!總選舉NO.1
icon.png[難過] 羨慕白皮膚的女生
icon.png閱讀文章
icon.png[黑特]
icon.png[問題] SBK S1安裝於安全帽位置
icon.png[分享] 舊woo100絕版開箱!!
icon.pngRe: [無言] 關於小包衛生紙
icon.png[開箱] E5-2683V3 RX480Strix 快睿C1 簡單測試
icon.png[心得] 蒼の海賊龍 地獄 執行者16PT
icon.png[售車] 1999年Virage iO 1.8EXi
icon.png[心得] 挑戰33 LV10 獅子座pt solo
icon.png[閒聊] 手把手教你不被桶之新手主購教學
icon.png[分享] Civic Type R 量產版官方照無預警流出
icon.png[售車] Golf 4 2.0 銀色 自排
icon.png[出售] Graco提籃汽座(有底座)2000元誠可議
icon.png[問題] 請問補牙材質掉了還能再補嗎?(台中半年內
icon.png[問題] 44th 單曲 生寫竟然都給重複的啊啊!
icon.png[心得] 華南紅卡/icash 核卡
icon.png[問題] 拔牙矯正這樣正常嗎
icon.png[贈送] 老莫高業 初業 102年版
icon.png[情報] 三大行動支付 本季掀戰火
icon.png[寶寶] 博客來Amos水蠟筆5/1特價五折
icon.pngRe: [心得] 新鮮人一些面試分享
icon.png[心得] 蒼の海賊龍 地獄 麒麟25PT
icon.pngRe: [閒聊] (君の名は。雷慎入) 君名二創漫畫翻譯
icon.pngRe: [閒聊] OGN中場影片:失蹤人口局 (英文字幕)
icon.png[問題] 台灣大哥大4G訊號差
icon.png[出售] [全國]全新千尋侘草LED燈, 水草

請輸入看板名稱,例如:Soft_Job站內搜尋

TOP