我在面板中有一个滚动窗格,在滚动窗格下有一个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");
答案 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);