2013-05-13 186 views
0

所以在我的程序中按鈕不起作用。我有它在哪裏,如果他們按下,他們改變一些變量,從而改變文本的標籤。就在我可以告訴變量不會添加按鈕時按下。我無法弄清楚什麼是錯的,但後來我又是新來的Java等等...Java按鈕不起作用

反正這裏是我的代碼:

import javax.swing.JApplet; 
    import javax.swing.JButton; 
    import java.awt.event.MouseAdapter; 
    import java.awt.event.MouseEvent; 
    import javax.swing.JProgressBar; 
    import javax.swing.JFormattedTextField; 
    import javax.swing.JTextField; 
    import javax.swing.JLabel; 
    import javax.swing.SwingConstants; 


    public class qa extends JApplet { 

     int y=0; 
     int x=0; 
     int q=0; 


     /** 
     * Create the applet. 
     */ 
     public qa() { 
      getContentPane().setLayout(null); 

      JButton btnYes = new JButton("YES"); 
      btnYes.addMouseListener(new MouseAdapter() { 
      @Override 
      public void mouseClicked(MouseEvent arg0) { 
        y+=1; 
        q+=1; 
       } 
      }); 
      btnYes.setBounds(135, 220, 85, 42); 
      getContentPane().add(btnYes); 

      JButton btnNo = new JButton("NO"); 
       btnNo.addMouseListener(new MouseAdapter() { 
       @Override 
       public void mouseClicked(MouseEvent e) { 
        x+=1; 
        q+=1; 
       } 
      }); 
      btnNo.setBounds(230, 220, 85, 42); 
      getContentPane().add(btnNo); 

      JLabel lblNewLabel = new JLabel("Do you like pizza?"); 
      lblNewLabel.setHorizontalAlignment(SwingConstants.CENTER); 
      lblNewLabel.setBounds(0, 97, 450, 50); 
      getContentPane().add(lblNewLabel); 
      if (q>=1) 
      { 
       lblNewLabel.setText("Really?"); 
      } 
     } 
    } 

感謝您的幫助!

+0

定義 「不工作」。 – 2013-05-13 18:57:59

+0

setVisible(true) – arynaq 2013-05-13 18:59:54

+0

對不起,我的意思是當我按下按鈕時,它不會給變量y和q和x加1。與按鈕一樣,甚至不會註冊點擊 – GiantDwarf 2013-05-13 19:00:47

回答

3
  1. 不使用NullLayout

  2. 的MouseListener不是正確的JButton監聽器,所有MouseEvents在Jbutton將API正確實施及

  3. 添加和使用Swing行動,RESP。 JButton的ActionListener

1

一切工作正常。只有您的if (q>=1)與任何偵聽器操作無關。這裏是指針。

  1. 將您的JLabel移到您的構造函數之外。

  2. lblNewLabel.setText("YES Really?");放在您的mouseClicked()方法之一中。

    @Override 
        public void mouseClicked(MouseEvent arg0) { 
          y+=1; 
          q+=1; 
          if (q>2) 
           lblNewLabel.setText("YES Really?"); 
          System.out.println("YES: " + y + " q :" + q); 
         } 
        });