键入JTextArea会影响其他组件

时间:2013-01-21 04:58:04

标签: java swing jpanel jtextarea

我正在制作有四个组成部分的小组:labeltextfield不可编辑,另一个标签和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 个答案:

答案 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布局。