2010-09-29 42 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