一.
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
public class Example25_1
{
public static void main(String args[])
{
JButton button=new JButton("轻组件按钮");
JTextArea text=new JTextArea("轻组件",20,20);
JFrame jframe=new JFrame("根窗体");
jframe.setSize(200,300);
jframe.setBackground(Color.blue);
jframe.setVisible(true);
jframe.pack(); //这是什么方法呀,什么意思呢?书上还没有讲
jframe.addWindowListener(new WindowAdapter()
{
public void windowCloseing(WindowEvent e)
{
System.exit(0);
}
}); //这条复合语句怎么执行的呀,晕了,一点都看不懂
Container contentpane=jframe.getContentPane();
contentpane.add(button,BorderLayout.SOUTH);
contentpane.add(text,BorderLayout.CENTER);
jframe.pack();
}
}二.
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
class Dwindow extends JFrame //这个是不是没有执行呢?
{
JButton button1,button2;
Dwindow(String s)
{
super(s);
Container con=getContentPane();
button1=new JButton("打开"); //怎么没显示
button2=new JButton("关闭"); //也没有显示
con.add(button1);
con.add(button2);
pack();
setVisible(true);
addWindowListener(new WindowAdapter()
{
public void windowClosing(WindowEvent e)
{
System.exit(0);
}
});
}
}
class Mydialog extends JDialog
{
JButton button1,button2;
Mydialog(JFrame F,String s)
{
super(F,s);
button1=new JButton("open");
button2=new JButton("close");
setSize(90,90);
setVisible(true);
setModal(false);
Container con=getContentPane();
con.setLayout(new FlowLayout());
con.add(button1);
con.add(button2);
addWindowListener(new WindowAdapter()
{
public void windowClosing(WindowEvent e)
{
System.exit(0);
}
});
}
}
public class Example25_4 extends JApplet
{
Dwindow window;
Mydialog dialog;
JButton button;
public void init()
{
window=new Dwindow("带对话框窗口");
dialog=new Mydialog(window,"我是对话框");
button=new JButton("ok");
getContentPane().add(button);
}
}
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
public class Example25_1
{
public static void main(String args[])
{
JButton button=new JButton("轻组件按钮");
JTextArea text=new JTextArea("轻组件",20,20);
JFrame jframe=new JFrame("根窗体");
jframe.setSize(200,300);
jframe.setBackground(Color.blue);
jframe.setVisible(true);
jframe.pack(); //这是什么方法呀,什么意思呢?书上还没有讲
jframe.addWindowListener(new WindowAdapter()
{
public void windowCloseing(WindowEvent e)
{
System.exit(0);
}
}); //这条复合语句怎么执行的呀,晕了,一点都看不懂
Container contentpane=jframe.getContentPane();
contentpane.add(button,BorderLayout.SOUTH);
contentpane.add(text,BorderLayout.CENTER);
jframe.pack();
}
}二.
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
class Dwindow extends JFrame //这个是不是没有执行呢?
{
JButton button1,button2;
Dwindow(String s)
{
super(s);
Container con=getContentPane();
button1=new JButton("打开"); //怎么没显示
button2=new JButton("关闭"); //也没有显示
con.add(button1);
con.add(button2);
pack();
setVisible(true);
addWindowListener(new WindowAdapter()
{
public void windowClosing(WindowEvent e)
{
System.exit(0);
}
});
}
}
class Mydialog extends JDialog
{
JButton button1,button2;
Mydialog(JFrame F,String s)
{
super(F,s);
button1=new JButton("open");
button2=new JButton("close");
setSize(90,90);
setVisible(true);
setModal(false);
Container con=getContentPane();
con.setLayout(new FlowLayout());
con.add(button1);
con.add(button2);
addWindowListener(new WindowAdapter()
{
public void windowClosing(WindowEvent e)
{
System.exit(0);
}
});
}
}
public class Example25_4 extends JApplet
{
Dwindow window;
Mydialog dialog;
JButton button;
public void init()
{
window=new Dwindow("带对话框窗口");
dialog=new Mydialog(window,"我是对话框");
button=new JButton("ok");
getContentPane().add(button);
}
}
{
public void windowCloseing(WindowEvent e)
{
System.exit(0);
}
});
在这里,括号里是一个内部类,用来监听事件。此处监听的事件就是当你按jframe右上角的叉号时可以关闭窗口。
(3)第二个例子我有点不明白,怎么只定义了几个类,连main都没有啊??
public void windowCloseing(WindowEvent e)
{
System.exit(0);
}//监听关闭
第二个程序不知道.我这applet程序用html不好用.机器配置问题,不会调
button2=new JButton("关闭"); //也没有显示
比如你的jframe.setSize(800,600);
但是上面只放了一个button,那么pack之后界面的size就只有一个button那么大,而不是原来800*600,你不是可以看到效果的吗?
class Dwindow extends JFrame //这个类好像没有执行呢?在 public class Example25_4 extends JApplet
{
Dwindow window;
中有Dwindow的对像,执行了它的构造函数
button2=new JButton("关闭"); //也没有显示
最好加到Jframe是去。
pack()能使布局管理器进行计算,得出一适当的框架大小,使框架以紧缩的形式包容其中的组件个人建议:最好多看一下课本或其它相关资料!
有与没有它没有区别呀第二个
是构造了呀,所以要显示"开""关"呀
dialog=new Mydialog(window,"我是对话框");//这个也构造了呀,它怎么有显示呢
第二个问题:
1.Dwindow在Applet中由init()调用
其效果和main方法差不多.
2.button1=new JButton("打开"); //怎么没显示
button2=new JButton("关闭"); //也没有显示
是因为布局管理器
所有button都重叠在一起,所以只看得到一个
3.还有Mydialog中的 setVisible(true)应该放到
con.add(button2);的后面
所以看不到Dialog上面的组件