当前位置: 代码迷 >> Java相关 >> 程序运行没反应 咋回事?
  详细解决方案

程序运行没反应 咋回事?

热度:10682   发布时间:2013-02-25 21:50:20.0
程序运行没反应 怎么回事???
各位大侠,你们好.
因为我是初学者,跟着视频学,代码完全是跟视频里一样的.可是程序运行后没有反应.视频教学里却正常的.不知道为什么?
申明:编译器应该是正常的,写其他程序是可以的.
这个程序主要是实现创建一个窗口,并在窗口中添加按钮,当用户单击按钮后将合乎弹出一个对话框窗体。
代码在下面:
package swing;
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;

public class MyJDialog extends JDialog{ // 创建新类继承JDialog类
  public MyJDialog(){
  // 实例化一个JDialog类对象,指定对话框的父窗体、窗体标题和类型
  super(new MyJFrame(),true);
  Container cp=getContentPane(); // 创建一个容器
  cp.add(new JLabel("对话框")); // 在容器中添加标签
  setSize(100,100);
  setDefaultCloseOperation(WindowConstants.DISPOSE_ON_CLOSE);
  }

public static void main(String[] args) {
  new MyJDialog();
  }
}

class MyJFrame extends JFrame{
  public MyJFrame(){
  Container cp=getContentPane();
  JLabel jl=new JLabel("这是个JFrame窗体");
  cp.add(jl);
  JButton jb=new JButton("Press me");
  cp.add(jb);
  jb.addActionListener(new ActionListener(){ //为按钮添加鼠标单击事件.
  public void actionPerformed(ActionEvent arg0){
  new MyJDialog().setVisible(true); 
  }
  });
}
}

------解决方案--------------------------------------------------------
如果要显示JDialog this.show();
如果要显示JFrame 添加this.setVisible(true);

Java code
import java.awt.*;import java.awt.event.*;import javax.swing.*;public class MyJDialog extends JDialog { // 创建新类继承JDialog类    public MyJDialog() {    // 实例化一个JDialog类对象,指定对话框的父窗体、窗体标题和类型    super(new MyJFrame(), true);    Container cp = getContentPane(); // 创建一个容器    cp.add(new JLabel("对话框")); // 在容器中添加标签    setSize(100, 100);    setDefaultCloseOperation(WindowConstants.DISPOSE_ON_CLOSE);    this.show();//////////////////////////////////////////////////////////////////////    }    public static void main(String[] args) {    new MyJDialog();    }}class MyJFrame extends JFrame {    public MyJFrame() {    Container cp = getContentPane();    JLabel jl = new JLabel("这是个JFrame窗体");    cp.add(jl);    JButton jb = new JButton("Press me");    cp.add(jb);    jb.addActionListener(new ActionListener() { // 为按钮添加鼠标单击事件.            public void actionPerformed(ActionEvent arg0) {            new MyJDialog().setVisible(true);            }        });    this.setVisible(true);////////////////////////////////////////////////////////////////    }}
------解决方案--------------------------------------------------------
上面有了答案 。。。。。。。。。。
------解决方案--------------------------------------------------------
因为show已经过期了,用Component.setVisible(boolean) 取代之。
  相关解决方案