2010-09-29 57 views
0

我最近遇到了一個問題,那就是我需要一個可以包裝文本的字段,並在文本被包裝時增加行的高度,類似於Microsoft Excel。我設法讓它正常工作,唯一的問題是該表包含多個JComboBoxes。當行的高度從包裝文本的字段增加時,JComboBox窗口和ArrowButton的大小也會增加。我爲JComboBox字段使用了DefaultCellEditor,並創建了自己的Editor/Renderer用於JTextArea字段。一旦選擇了JComboBox的值,該值就會在字段中正確顯示,唯一的問題是當我選擇該值時,JComboBox窗口和ArrowButton可能會很大,具體取決於行的大小。有什麼辦法可以增加行的高度,但是JComboBox字段高度是否保持相同,而不是增長以填充它所在的列?我想我可能需要爲JComboBox字段創建一個自定義單元格編輯器,而不是使用默認值。提前致謝!JComboBox在具有多行單元格的表格中的大小問題

回答

0

我想我可能需要爲JComboBox時 字段 自定義單元格編輯器以及而不使用 默認

這可能是解決方案,因爲編輯器的大小取決於單元的大小。

我會嘗試使用帶有BorderLayout的JPanel作爲編輯器組件。然後,將您的編輯器添加到面板的北部。

這將是最簡單的編輯器創建,因爲所有的鼠標事件和關鍵事件都傳遞給編輯器我相信,這意味着面板將獲得事件,而不是組合框。所以我想你會需要將這些事件轉發到組合框。

+0

非常感謝您的回答。我能夠讓編輯看看我想要它看起來怎麼樣,但我遇到了通過表格切換的問題。如果我在ComboBox中並按Tab,它將從表格​​中跳出並放到包含該表格的面板上的第一個啓用的字段上。另外,如果我單擊ComboBox所在的單元格,事情似乎正常工作,但是如果我單擊包含ComboBox的面板所在的單元格,則似乎存在問題。我認爲這可能與「將這些事件轉發到組合框」有關。 – 2010-10-06 22:07:35

0

首先,是JComboBoxBorderLayout並設置爲BorderLayout.CENTER? 如果是這樣,我會將其更改爲不同的佈局,例如AbsoluteLayout,因此它不會伸展以填充單元格。

另外,我也會向您推薦這篇文章Putting JComboBox into JTable

相關問題