2013-05-13 185 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); 
         } 
        });