2011-05-29 80 views
0

我将JTable列的大小设置为200(使用setPreferredWidth()),并将其中的JTextField的大小设置为100(使用setSize())。设置JTextField在JTable中的大小

不过,我看到我的文本字段被拉伸到列的整个200像素,忽略了我设置的大小。

我应该怎么做,为我的专栏和文本字段设置不同的大小?

+0

这是编辑器(和渲染器)的工作方式。他们总是激起牢房的整个区域。你为什么要这个有什么不同?你想用另外100个像素做什么?听起来像一个奇怪的设计。发布你的实际需求而不是你的解决方案,也许有人可以提出更好的解决方案。 – camickr 2011-05-29 15:26:21

+0

请不要在任何Swing组件上使用'setSize()','setMin/Pref/MaxSize()',硬编码的像素大小非常糟糕!试着相信Swing计算组件的最佳可能尺寸(可能有一些帮助,但不提供为硬编码像素)。 – jfpoilpret 2011-05-29 15:34:17

回答

2

使用自定义TableCellRenderer和/或TableCellEditor可以使单元格具有JTextField的特定大小,并且在表格中还具有额外的空间。

http://download.oracle.com/javase/tutorial/uiswing/components/table.html#editrender

另见:http://download.oracle.com/javase/tutorial/uiswing/layout/problems.html的建议

(作为一个方面说明这听起来很奇怪,也许需要一秒钟,问你自己是在这种情况下使用JTable真的是最好的成分)。

+0

并添加链接到http://download.oracle.com/javase/tutorial/uiswing/layout/problems.html +1 – mKorbel 2011-05-29 12:41:00