繁体   English   中英

从另一个类设置JTextArea值

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM