传递和命名变量

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了传递和命名变量相关的知识,希望对你有一定的参考价值。

我是Java的初学者,并试图找出构建JScrollPane的方法。到目前为止,我有以下代码,但是在调用JScrollPane时遇到了问题。请帮忙。提前致谢。

public class DemoTest {

    public String sTEXT = null;
    public JTextArea jTEXTAREA = null;
    public JScrollPane jPANE = null;
    public JFrame jFRAME = null;

    public static void main(String[] args) {
        DemoTest demo = new DemoTest();
    }

    public DemoTest() {
        setText();
        setPane();
        setFrame();
    }

    public void setFrame() {
        JFrame jFRAME = new JFrame("Demo");

        jFRAME.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        jFRAME.setSize(350, 300);
        jFRAME.setLocationRelativeTo(null);
        jFRAME.setVisible(true);
        jFRAME.add(jPANE); // **THIS SEEMS TO BE THE PROBLEM**
    }

    public void setPane() {
        JScrollPane jPANE = new JScrollPane(jTEXTAREA);
    }

    public void setText() {
        JTextArea jTEXTAREA = new JTextArea();
        jTEXTAREA.setText("Hello World!");
        jTEXTAREA.setEditable(false);
    }
}
答案

当您尝试创建各种Swing对象时,您创建了新的局部变量,而不是分配给成员变量(类级别)。请注意,如果您有一个成员变量和同名的局部变量,您可以使用this.VAR_NAME = ...;分配给成员变量。为了更好地理解变量范围,请阅读这篇Scope of Variables in Java文章,该文章很好地解释了基础知识。

public class DemoTest {

    public  String          sTEXT           = null;
    public  JTextArea       jTEXTAREA       = null;
    public  JScrollPane     jPANE           = null;
    public  JFrame          jFRAME          = null;

    public static void main(String[] args) {
        DemoTest demo = new DemoTest();
    }

    public DemoTest(){
        setText();
        setPane();
        setFrame();
    }

    public void setFrame(){
        jFRAME = new JFrame ("Demo");
        jFRAME.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        jFRAME.setSize(350,300);
        jFRAME.setLocationRelativeTo(null);
        jFRAME.setVisible(true);
        jFRAME.add(jPANE);

    }

    public void setPane(){
        jPANE = new JScrollPane(jTEXTAREA);
    }

    public void setText(){
        jTEXTAREA= new JTextArea();
        jTEXTAREA.setText("Hello World!");
        jTEXTAREA.setEditable(false);
    }
}

以上是关于传递和命名变量的主要内容,如果未能解决你的问题,请参考以下文章

传递和命名变量

如何在导航抽屉活动模板中的片段之间传递字符串变量

Android Java将变量从片段传递到活动[重复]

将变量传递给现代中继中的片段容器

将数据从片段列表视图项传递到活动字符串变量 onitemclicklistener

如何将变量从活动传递到片段不能解决以前的所有问题