[英]Set JTextArea value from another class
我的问题是:如何从另一个类设置JTextArea
的值? 这是包含JTextArea
并扩展JFrame
:
public class JTreeFiles extends javax.swing.JFrame {
private javax.swing.JTextArea jTextArea1;
public JTreeFiles() {
initComponents();
}
public JTextArea setTextArea(){
return this.jTextArea1;
}
}
这是我尝试设置JTextArea
的值的地方:
tree.addTreeSelectionListener(new TreeSelectionListener() {
public void valueChanged(TreeSelectionEvent e) {
TreePath tp = tree.getSelectionPath();
if (tp != null) {
Object filePathToAdd = tp.getLastPathComponent();
//System.out.println(filePathToAdd);
if (filePathToAdd instanceof FileTreeNode) {
FileTreeNode node = (FileTreeNode) filePathToAdd;
File file = node.getFile();
if (file.isFile() && file.getName().endsWith(".java")) {
JTreeFiles jf = new JTreeFiles();
jf.setTextArea().setText("Text Here"); //Nothing happen here
}
}
}
}
}
但是没有任何反应,该文本未显示在JTextArea
。 我究竟做错了什么?
看来您从未初始化过jTextArea1(从我所看到的)。 您也不要在侦听器中的任何地方使用jTextArea1。 您可能想要添加这些并进行测试。
您没有使用此方法进行任何更改
public JTextArea setTextArea(){
return this.jTextArea1;
}
此方法需要包含类似
jTextArea1.setText("sometext");
编辑
例如
public class JTreeFiles extends JFrame {
private JTextArea jTextArea1;
public void setText(String text){
jTextArea1.setText(text);
}
}
然后您将其放入侦听器中
tree.addTreeSelectionListener(new TreeSelectionListener() {
public void valueChanged(TreeSelectionEvent e) {
// All of your other IF statements
JTreeFiles jf = new JTreeFiles();
jf.setText("Text Here");
jf.repaint();
}
}
更新后尝试重绘textArea:
jf.getTextArea().update(jf.getTextArea().getGraphics());
顺便说一句,根据bean的代码约定,JTreeFiles方法应该是getTextArea
而不是setTextArea
。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.