使用的JTextArea与JTabbedPanel(Using JTextarea with JTa

2019-10-29 20:00发布

JTextArea是动态创建并添加到使用的代码的jTabbed面板:

            // tabidis is a variable with unique value in each case

            JScrollPane panel2 = new JScrollPane();
            panel2.setName(tabidis);

            ta = new JTextArea("");
            ta.setColumns(30);
            ta.setRows(20);
            ta.setEditable(false);
            panel2.setViewportView(ta);
            ta.setName(tabidis);

            jTabbedPane1.add(username4, panel2);

当添加新的选项卡(TA textarea的与它一起添加),最后一个选项卡的textarea临危所有文本。

 private void jTabbedPane1StateChanged(javax.swing.event.ChangeEvent evt){
                send3 = ta.getName();
                ta.setName(send3);
                ta.setText(ta.getText()+send3);
                }

在上面的代码,你可以看到,在这两个文本的文字区域(在两个标签)应更新。 但真正的情况是,只有第二个文本区域是越来越updated.The第一文本区不更新。

Answer 1:

ta一次只能有一个值,你需要的是一个CollectionTextArea ,你必须有一个对它们的引用,例如List<JTextArea> textAreas

然后在你的代码

        JTextArea ta = new JTextArea("");
        ta.setColumns(30);
        ta.setRows(20);
        ta.setEditable(false);
        textAreas.add(ta);

而在你的情况是这样的:

private void jTabbedPane1StateChanged(javax.swing.event.ChangeEvent evt){
                for(JTextArea ta : textAreas ){
                 send3 = ta.getName(); // this line an below are redundant
                 ta.setName(send3);
                 ta.setText(ta.getText()+send3);
               }
}


文章来源: Using JTextarea with JTabbedPanel