各位大侠,你们好.
因为我是初学者,跟着视频学,代码完全是跟视频里一样的.可是程序运行后没有反应.视频教学里却正常的.不知道为什么?
申明:编译器应该是正常的,写其他程序是可以的.
这个程序主要是实现创建一个窗口,并在窗口中添加按钮,当用户单击按钮后将合乎弹出一个对话框窗体。
代码在下面:
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) 取代之。