【问题标题】:Setting size of JTextField inside a JTable在 JTable 中设置 JTextField 的大小
【发布时间】:2011-05-29 12:22:36
【问题描述】:

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

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

我应该怎么做才能为我的列和文本字段设置不同的大小?

【问题讨论】:

  • 这是编辑器(和渲染器)的工作方式。它们总是占据细胞的整个区域。为什么你希望这有什么不同?你想用其他 100 个像素做什么?听起来像一个奇怪的设计。发布您的实际需求而不是您的解决方案,也许有人可以提出更好的解决方案。
  • 请不要在任何 Swing 组件上使用setSize()setMin/Pref/MaxSize(),以像素为单位的硬编码尺寸非常糟糕!尝试相信 Swing 会为您的组件计算可能的最佳尺寸(可能需要一些帮助,但不是作为硬编码像素提供)。

标签: java swing jtable jtextfield


【解决方案1】:

使用自定义 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 真的是在这种情况下使用的最佳组件)。

【讨论】:

猜你喜欢
  • 2011-08-14
  • 2013-12-13
  • 2019-03-22
  • 2014-03-16
  • 1970-01-01
  • 1970-01-01
  • 2017-12-24
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多