我正在制作有四个组成部分的小组:label
,textfield
不可编辑,另一个标签和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);
答案 0 :(得分:3)
使用其他LayoutManager
例如GridBagLayout
或
将JLabel
放置在水平BoxLayout
(或BorderLayout
)的面板中,以实现所需的对齐。
答案 1 :(得分:3)
另一种选择:
将textAreaComponent添加到JScrollPane(将scrollPane的alignmentX设置为0.0f)
答案 2 :(得分:3)
我也有这个问题,我补充说:textArea.setLineWrap(true)
。当您在字段中键入时,它会阻止其他对象被推送。
答案 3 :(得分:2)
你绝对应该使用另一种布局。我最喜欢的一个是Forms from JGoodies。我还没有看到任何接近的Java Swing布局。