【发布时间】:2011-07-08 02:06:48
【问题描述】:
我正在尝试创建一个快速而肮脏的摇摆 UI。我的 UI 有几个 JTextField,然后是 JScrollPane 中的一个 JTextArea,因为 JTextArea 的内容可能会变大。
我正在使用一个简单的 BoxLayout,我不想在 GridBagLayout 上浪费时间。
我的问题是,当我调整窗口大小时,JLabels 变得很大。他们将在大量空白空间中放置一行文本。它看起来很丑,很浪费。另一方面,JTextArea 永远不会增加大小,因为 JScrollPane 会处理额外的内容。因此,我将在滚动窗格中拥有巨大的 JTextField 和一个很小的 JTextArea,几乎看不到一行。
有没有一种简单的方法可以确保 JTextField 的高度永远不会超过一行文本?也许覆盖 getMaximumSize/getPreferredSize ?如果是这样,代码是什么?
唯一可以解决这种情况的函数是 JFrame.pack(),但它会改变窗口大小(非常不受欢迎)并且有时不会将自己限制在桌面上。
【问题讨论】:
-
“我正在尝试创建一个快速而肮脏的摇摆 UI”...还有其他类型的摇摆 UI 吗? :)
-
好吧,还有那个缓慢、肥胖、汗流浃背且仍然很脏的 GridBagLayout :)。严肃地说,如果我正在用 Java 编写一个严肃的应用程序,我应该使用什么 UI?
-
坦率地说,自 1.4 以来,挥杆已经有了很大的改进,特别是在 1.5 和 1.6 中。如果您正在开发桌面应用程序,那么无论如何您都没有太多选择。您拥有的其他 java 选项是 SWT 和 QT。我自己没用过QT,但是SWT还不错,但是你不会找到可能的SWT开发者来长期维护你的代码。