【发布时间】:2013-06-30 04:25:58
【问题描述】:
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);
}
在上面的代码中,您可以看到两个文本区域(在两个选项卡中)中的文本都应该更新。但真正发生的是只有第二个 TextArea 得到更新。第一个 TextArea 没有更新。
【问题讨论】:
-
我不明白
ta的值始终为 ONE ,应该只更新一个,因为您只更新一个,您可能需要 textArea 的Collection.. -
您为什么期望这段代码应该更新两个文本区域?您只更新 ta ,它只是 1 个文本字段。您一次又一次地“重新初始化”同一个文本区域。所以最后初始化的 textarea 得到了文本。
-
@Optional 有什么办法可以将文本放到当前标签的文本区域中?
-
如需尽快获得更好的帮助,请发帖SSCCE。
标签: java swing jscrollpane jtextarea jtabbedpane