2016-09-21 18 views
-2

最初に、私は非常にjavaに新しいので、これは本当にシンプルですが、私はこの日付のオブジェクトがあり、私はactionlistenerメソッドを作ったが、私はそこにオブジェクトを使用させませんと言わせてください。メソッドにアクセスできるようにするにはどうすればよいですか?Javaで異なるメソッドの変数を使用するにはどうすればよいですか?

  jp = new JPanel(); 
     jta = new JTextArea(100, 100); 
     jta.setPreferredSize(new Dimension(460,420)); 
     jta.setLineWrap(true); 
     jta.setWrapStyleWord(true); 
     DateFormat dateFormat = new SimpleDateFormat("yyyy/MM/dd"); 
     Date date = new Date(); 
     jb = new JButton("Tommorow"); 
     jl = new JLabel(); 
     jf = new JFrame(); 

     jf.setBackground(Color.BLUE); 

     jl.setText(dateFormat.format(date)); 
     add(jl, BorderLayout.NORTH); 

     add(jp); 
     jp.add(jb, BorderLayout.EAST); 
     add(jta); 

     jb.addActionListener(this); 
} 

public void actionPerformed(ActionEvent e) { 
     jta.setText(""); 
     Calendar cal = Calendar.getInstance(); 
     cal.setTime(date); 
     cal.add(Calendar.DATE, 1); 
     date = cal.getTime(); 
} 
+0

どのオブジェクトにアクセスしようとしていますか? – RamenChef

+0

'date'を[privateフィールド](https://docs.oracle.com/javase/tutorial/java/javaOO/variables.html)にするだけです。 – TNT

+0

どうすればいいですか? –

答えて

0

スコープに問題があります。最初にグローバルとして宣言されていないか、関数のパラメータで渡されていない限り、他の関数から変数にアクセスすることはできません。

+0

どうすれば修正できますか?申し訳ありませんが、私は言ったようにJavaの新しいです。 –

+1

Javaには、グローバル変数または関数がありません。 –

+0

@RadinHakimjavadiここでactionPerformedが呼び出されていますか? –

1

現在、変数の範囲に問題があります。メソッドpublic void actionPerformed(ActionEvent e)では、別のメソッドの変数を使用することはできません。もし上記で使用:

jta = new JTextArea(100, 100); 
jta.setPreferredSize(new Dimension(460,420)); 
jta.setLineWrap(true); 
jta.setWrapStyleWord(true); 

を変数jtaがそのメソッドにローカルであり、他の方法でアクセスすることはできません。 Date date = new Date();も同様です。これらの変数を下に続けて使用したい場合、オブジェクトを作成するにはこれらの変数が含まれています。それは次のようになります:

public class MyClass { 

    private JTextArea textArea; 
    private Date date; 

    public MyClass(JTextArea textArea, Date date) { 
     this.textArea = textArea; 
     this.date = date; 
    } 

    public JTextArea getTextArea() { 
     return this.textArea; 
    } 

    public Date getDate() { 
     return this.date; 
    } 

} 
関連する問題