【问题标题】:jTextArea append is not workingjTextArea 附加不起作用
【发布时间】:2017-02-06 16:39:45
【问题描述】:

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

【问题讨论】:

    标签: java swing jscrollpane jtextarea


    【解决方案1】:
    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);
    

    【讨论】:

    • 能否在 panel_1.add(scrollPane_1) 之后使用 jTextArea.append 动态记录文本?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-03-27
    • 1970-01-01
    • 2016-02-26
    • 2014-12-29
    • 2012-08-09
    相关资源
    最近更新 更多