2016-09-21 82 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'設爲[專用字段](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; 
    } 

} 
相關問題