使用以下代码动态创建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);
}
在上面的代码中,您可以看到textareas(在两个选项卡中)中的文本应该更新。但真正发生的是只有第二个TextArea正在更新。第一个TextArea没有更新。
答案 0 :(得分:1)
ta
一次只有一个值,您需要的是Collection
TextArea
您需要引用它们,例如List<JTextArea> textAreas
< / p>
然后在你的代码中
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);
}
}