1

我正在处理具有四个组件的面板: a labeltextfield不可编辑的 a ,另一个标签和 a JTextArea。这些组件一个接一个地垂直对齐,我为此面板使用了 Box Layout。我注意到的是,当我输入文本区域组件时,它会逐个字符地移动标签,直到它不能再移动。它们的标签最初是向左对齐的,但是一旦我开始打字,它们就会开始向右移动。我已经尝试了很多其他组件,但 Box Layout 似乎做了我想要的,我只需要修复这个错误。任何一个想法?这是我的面板代码:

JPanel Panel = new JPanel();
Panel.setLayout(new BoxLayout(Panel,BoxLayout.Y_AXIS));
Panel.add(new JLabel("just a label here"));
Panel.add(textFieldComponent);
Panel.add(new JLabel("just a label here"));
Panel.add(textAreaComponent);
4

4 回答 4

3

使用另一个LayoutManager例如GridBagLayout

将 放置JLabel在带有水平BoxLayout(或BorderLayout)的面板中以激活所需的对齐方式。

于 2013-01-21T06:05:24.330 回答
3

另一种选择:

将 textAreaComponent 添加到 JScrollPane(将 scrollPane 的 alignmentX 设置为 0.0f)

于 2013-01-21T07:06:00.293 回答
3

我也有这个问题,我补充说:textArea.setLineWrap(true). 当您在字段中键入时,它会阻止其他对象被推送。

于 2015-11-06T17:02:32.157 回答
2

您绝对应该使用另一个布局。我个人最喜欢的一个是JGoodies 的表格。我还没有看到任何接近的Java Swing 布局。

于 2013-01-21T09:36:19.030 回答