2015-05-30 24 views
0

我是一個初學者程序員試圖做一個簡單的計算器。在我的代碼結束時,我嘗試讓文本字段顯示用戶按下的任何按鈕。出於某種原因,text.setText(「7」)不顯示在文本字段中。你能幫我解決這個問題嗎?setText問題使用getActionCommand

import javax.swing.*; //imports all that is needed for the code 
    import java.awt.*; 
    import java.awt.event.*; 

    public class Calculator extends JFrame implements ActionListener { 

     public JButton button1, button2, button3, button4, button5, button6, button7, button8, button9, button10, button11, button12, button13, button14, button15, button16; 
     public JTextArea text; 

     public Calculator() 
     { 
      setSize(350,300); //sets size to 300 by 300 //LOOK UP HOW TO LOCK SIZE 
      setResizable(false); //does not let user change the size of the window 
      setDefaultCloseOperation(EXIT_ON_CLOSE);//makes app close when I press the x on the top left 

      Container contentPane = getContentPane();//gets the contentPane 
      contentPane.setBackground(Color.CYAN);//sets background color to white   

      contentPane.setLayout(new FlowLayout());//makes the contentPane read from left to right 

      JTextArea text = new JTextArea(1, 25); 
      contentPane.add(text); 
      text.setEditable(false); 

      button1 = new JButton ("7"); 
      contentPane.add(button1); 
      button1.addActionListener(this); 

      button2 = new JButton ("8"); 
      contentPane.add(button2); 
      button2.addActionListener(this); 

      button3 = new JButton ("9"); 
      contentPane.add(button3); 
      button3.addActionListener(this); 

      button4 = new JButton ("÷"); 
      contentPane.add(button4); 
      button4.addActionListener(this); 

      button5 = new JButton ("4"); 
      contentPane.add(button5); 
      button5.addActionListener(this); 

      button6 = new JButton ("5"); 
      contentPane.add(button6); 
      button6.addActionListener(this); 

      button7 = new JButton ("6"); 
      contentPane.add(button7); 
      button7.addActionListener(this); 

      button8 = new JButton ("x"); 
      contentPane.add(button8); 
      button8.addActionListener(this); 

      button9 = new JButton ("1"); 
      contentPane.add(button9); 
      button9.addActionListener(this); 

      button10 = new JButton ("2"); 
      contentPane.add(button10); 
      button10.addActionListener(this); 

      button11 = new JButton ("3"); 
      contentPane.add(button11); 
      button11.addActionListener(this); 

      button12 = new JButton ("-"); 
      contentPane.add(button12); 
      button12.addActionListener(this); 

      button13 = new JButton ("0"); 
      contentPane.add(button13); 
      button13.addActionListener(this); 

      button14 = new JButton ("."); 
      contentPane.add(button14); 
      button14.addActionListener(this); 

      button15 = new JButton ("="); 
      contentPane.add(button15); 
      button15.addActionListener(this); 

      button16 = new JButton ("+"); 
      contentPane.add(button16); 
      button16.addActionListener(this); 



     } 

     public static void main(String[] args) 
     { 
      Calculator guiWindow = new Calculator(); //uses GUI 
      guiWindow.setVisible(true); //makes it visible 

     } 

     public void actionPerformed(ActionEvent e) 
     { 
      Container contentPane = getContentPane(); 

      if (e.getActionCommand().equals("7")); 
      { 
       text.setText("7"); 
      } 






     } 

    } 

回答

2

它看起來像你的陰影在構造函數中的成員字段JTextArea text。所以這意味着你沒有將JTextArea的實例分配給成員字段,而是分配給構造函數中的局部變量。

使用的,而不是這個

JTextArea text = new JTextArea(1, 25); 

text = new JTextArea(1, 25); 
+0

我認爲他只是缺少這樣做,導致其他的物體,像按鈕被初始化右=) –

+0

感謝你這麼多的工作! –