jTextArea追加不起作用

时间:2017-02-06 16:39:45

标签: java swing jscrollpane jtextarea

我在面板中有一个滚动窗格,在滚动窗格下有一个jtextarea。 jtextarea追加不起作用

我正在使用它来记录日志。

JPanel panel_1 = new JPanel();
tabbedPane.addTab("Logs", null, panel_1, null);
panel_1.setLayout(null);

JScrollPane scrollPane_1 = new JScrollPane();
scrollPane_1.setBounds(0, 0, 672, 303);
panel_1.add(scrollPane_1);

JTextArea jTextArea = new JTextArea(100,200);
jTextArea.setEditable(false);
jTextArea.setVisible(true);
scrollPane_1.add(jTextArea);
jTextArea.append("Hello");

1 个答案:

答案 0 :(得分:3)

scrollPane_1.add(jTextArea);

不要将组件添加到滚动窗格。需要将组件添加到滚动窗格的视口中。

最简单的方法是使用:

JTextArea jTextArea = new JTextArea(100,200);
jTextArea.setEditable(false);
jTextArea.setVisible(true);
//scrollPane_1.add(jTextArea);
jTextArea.append("Hello");

JScrollPane scrollPane_1 = new JScrollPane(jTextArea);
scrollPane_1.setBounds(0, 0, 672, 303);
panel_1.add(scrollPane_1);

另一种方法是使用:

JScrollPane scrollPane_1 = new JScrollPane();
scrollPane_1.setViewportView( jTextArea );

另外,您应该注意,在创建文本区域时,参数是行/列,而不是像素,因此您的值太大。我会建议像:

//JTextArea jTextArea = new JTextArea(100,200);
JTextArea jTextArea = new JTextArea(30,10);

最后,您不应该设置滚动窗格的边界。 Swing旨在与布局管理器一起使用。布局管理器将根据文本区域的大小确定滚动窗格的大小:

//scrollPane_1.setBounds(0, 0, 672, 303);