Re: [問題] JTable 欄位輸入內容控制的問題

看板java作者 (骨頭)時間19年前 (2006/04/13 13:18), 編輯推噓0(000)
留言0則, 0人參與, 最新討論串2/4 (看更多)
※ 引述《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)
文章代碼(AID): #14FTyTx2 (java)
文章代碼(AID): #14FTyTx2 (java)