2017-12-22 40 views
0

私は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); 
    } 
} 
+1

使用this.jFRAME(またはクラス変数が存在する同じ名前の変数を作成しない)クラス変数に割り当てるそうでなければ、これらの変数を初期化することはありません。 – Zachary

+2

上記のコードでは初心者向けの多くの間違いを犯していますが、間違いは、GUIプログラミングに取り組む前に、まず基本をバックアップして勉強したいということです。 –

答えて

0

さまざまな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); 
    } 
} 
関連する問題