ActionListener到按钮,似乎是JOptionPane干扰

时间:2015-12-17 08:02:56

标签: java actionlistener joptionpane

我有这个样本。这是一个简单的程序。 按Me按钮调用JOptionPane。 退出按钮调用System.exit。 问题是JOptionPane的按钮OK似乎调用“else”(与buttonExt一起)并退出程序。 如何操作JOptionPane按钮?

package javatests;

import java.awt.Container;
import java.awt.FlowLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.AbstractAction;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JOptionPane;

/**
 *
 * @author fotis
 */
public class AreaCalculation extends JFrame 
implements ActionListener {

    private JButton button;
    private JButton exitBtn;

public static void main(String[] args){
    AreaCalculation frame=new AreaCalculation();
    frame.setSize(400, 300);
    frame.createGUI();
    frame.setVisible(true);
}    
     public void createGUI(){
      FlowLayout flow=new FlowLayout();  
      setDefaultCloseOperation(EXIT_ON_CLOSE);
      Container window=getContentPane();
      window.setLayout(flow);
      button=new JButton("Press me");
      window.add(button);
      button.addActionListener(this);
      exitBtn=new JButton("Exit");
      window.add(exitBtn);
      exitBtn.addActionListener(this);
    }           

            public void actionPerformed(ActionEvent e) {
        int area,length,width;
        length = 20;
        width =10;
        area= length*width;
        if(e.getSource()==button){
        JOptionPane.showMessageDialog(null, "Area is : " + area); 
        }
        else if(e.getSource()==exitBtn);
        {System.exit(0);}
}
}

1 个答案:

答案 0 :(得分:2)

     else if(e.getSource()==exitBtn);

那次训练;是else {System.exit(0);}else if(e.getSource()==exitBtn) { ; } { System.exit(0);} } 就是一个块。

正确格式化它将等于:

else if(e.getSource()==exitBtn) {
    System.exit(0);
}

正确的代码:

add