JComboBox在具有多行单元格的表中调整大小问题

时间:2010-09-29 22:13:00

标签: java jtable jcombobox textwrapping jtextarea

我最近遇到了一个问题,我需要一个可以包装文本的字段,并在文本被包装时增加行的高度,类似于Microsoft Excel。我设法让它正常工作,唯一的问题是该表包含多个JComboBox。当行的高度从包装文本的字段增加时,JComboBox窗口和ArrowButton的大小也会增加。我正在为JComboBox字段使用DefaultCellEditor,并创建了我自己的编辑器/渲染器以与JTextArea字段一起使用。一旦选择了JComboBox的值,该值就会在字段中正确显示,唯一的问题是当我选择值时,JComboBox窗口和ArrowButton可能会很大,具体取决于行的大小。有没有办法增加行的高度,但让JComboBox字段高度保持不变而不是增长以填充它所在的列?我想我可能需要为JComboBox字段制作自定义单元格编辑器,而不是使用默认值。提前谢谢!

2 个答案:

答案 0 :(得分:0)

首先,JComboBox中的BorderLayout是否设为BorderLayout.CENTER? 如果是这样,我会将其更改为不同的布局,例如AbsoluteLayout,因此它不会拉伸以填充单元格。

此外,我还会向您推荐这篇文章Putting JComboBox into JTable

答案 1 :(得分:0)

  

我想我可能需要做一个   JComboBox的自定义单元格编辑器   字段,而不是使用   默认

这可能是解决方案,因为编辑器的大小由单元格的大小决定。

我会尝试使用带有BorderLayout的JPanel作为编辑器组件。然后将编辑器添加到面板的北部。

这将是最简单的编辑器,因为所有鼠标事件和关键事件都传递给我认为的编辑器,这意味着面板将获取事件,而不是组合框。所以我想你需要将这些事件转发到组合框。