Re: [問題] JTable 欄位輸入內容控制的問題
※ 引述《cpqq (cpqq)》之銘言:
: 對不起,我第一次在這問問題,請多包函。
: 我看了有關於要如何在一個 table 內有不同的 editor,
: 或者是想要在不同的 cell 內有不同的 ComboBox 等的文章,
: 很多人都會用 EachRowEditor 那個範例
: http://www.crionics.com/products/opensource/faq/swing_ex/JTableExamples2.html,
: (對不起,不知道怎麼縮,可以教我怎麼縮嗎?)
: 我試過了,可以正常地 work!但是我一直不懂也找不到為甚麼利用那個方法可以辦到......
: 首先,為甚麼把不同的 Editor 放在 HashTable 不同的 Value 內就可以讓該 key row
: 顯示不同的 ComboBox?
原來這一題要這樣實作...
啊啊啊啊啊 我當初怎麼沒想到...........(昏)
我那時候在同樣的問題上卡了整整兩天!!!
後來生氣乾脆放棄combobox改用別的東西..-_-;
感謝你的這份文件...= =
---
回你的問題.....因為JTable是很單純的,
你傳甚麼東西給它它就吃甚麼。
也就是 它根本不管你hashtable放的是甚麼
甚至於說,它根本不理你有沒有hashtable。
getTableCellRendererComponent()這東西傳給它甚麼就吃甚麼。
這理這個method傳過去最重要的一行在這裡
renderer = (TableCellRenderer)renderers.get(new Integer(row));
簡單來說
用hashtable只是為了把各個row的cell設定存起來而已
然後Jtable在跟他要東西的時候 就照row回給它
如果不用hashtable去存各個項目
而只是進來一個就改變renders的話
就會變成所有的row都用同一個renderers .....
就會變成每個combobox的內容都一樣 (我之前的問題就是這個) XD
---
至於第二個問題
你去看這個class在哪裡被引用的 再查查API就知道啦
像這行
table.getColumn("Column2").setCellEditor(rowEditor);
再對照http://0rz.net/b11ek
就可以知道rowEditor為甚麼只implements TableCellEditor
--
local
jtable的設定真的很麻煩.....
--
String temp="relax"; | Life just like programing
while(buringlife) String.forgot(temp); | to be right or wrong
while(sleeping) brain.setMemoryOut(); | need not to say
stack.push(life.running); | the complier will
stack.push(scouting.buck()); | answer your life
stack.push(bowling.pratice()); | Bone everything
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 140.138.240.57
※ 編輯: TonyQ 來自: 140.138.240.57 (04/13 13:31)
※ 編輯: TonyQ 來自: 140.138.240.57 (04/13 13:36)
討論串 (同標題文章)
java 近期熱門文章
PTT數位生活區 即時熱門文章