import java.awt.BorderLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;import javax.swing.JButton;
import javax.swing.JDialog;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JMenu;
import javax.swing.JMenuBar;
import javax.swing.JMenuItem;
import javax.swing.JPanel;public class AboutDialog extends JDialog{
static JFrame jf=new JFrame();
/**
* @param args
*/
static JFrame tf=new JFrame();
public static void main(String[] args) {
// TODO Auto-generated method stub
new AboutDialog(jf);
}
public AboutDialog(JFrame owner){
super(owner,"关于记事本",true);
tf.setVisible(true);
tf.setLocation(600, 600);
tf.setSize(100,100);
JMenuBar jb=new JMenuBar();
JMenu jm=new JMenu("FIle");
JMenuItem ji=new JMenuItem("About");
jb.add(jm);
jm.add(ji);
jf.setJMenuBar(jb);
ji.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
// TODO Auto-generated method stub
setVisible(true);
}
});
jf.setVisible(true);
jf.setSize(300,300);
add(new JLabel("<html><h1>Window7 旗舰版</i></h1><hr><p>Microsoft Windows</p><p>....</p></html>"),BorderLayout.CENTER);
JPanel panel=new JPanel();
JButton ok=new JButton("Ok");
ok.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
// TODO Auto-generated method stub
setVisible(false);
}
});
panel.add(ok);
add(panel,BorderLayout.SOUTH);
setSize(250,150);
}}这里super(owner,"关于记事本",true);我吧owner改成tf并没有看出什么变化,看了一会API文档后还是一头雾水,求解释了
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;import javax.swing.JButton;
import javax.swing.JDialog;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JMenu;
import javax.swing.JMenuBar;
import javax.swing.JMenuItem;
import javax.swing.JPanel;public class AboutDialog extends JDialog{
static JFrame jf=new JFrame();
/**
* @param args
*/
static JFrame tf=new JFrame();
public static void main(String[] args) {
// TODO Auto-generated method stub
new AboutDialog(jf);
}
public AboutDialog(JFrame owner){
super(owner,"关于记事本",true);
tf.setVisible(true);
tf.setLocation(600, 600);
tf.setSize(100,100);
JMenuBar jb=new JMenuBar();
JMenu jm=new JMenu("FIle");
JMenuItem ji=new JMenuItem("About");
jb.add(jm);
jm.add(ji);
jf.setJMenuBar(jb);
ji.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
// TODO Auto-generated method stub
setVisible(true);
}
});
jf.setVisible(true);
jf.setSize(300,300);
add(new JLabel("<html><h1>Window7 旗舰版</i></h1><hr><p>Microsoft Windows</p><p>....</p></html>"),BorderLayout.CENTER);
JPanel panel=new JPanel();
JButton ok=new JButton("Ok");
ok.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
// TODO Auto-generated method stub
setVisible(false);
}
});
panel.add(ok);
add(panel,BorderLayout.SOUTH);
setSize(250,150);
}}这里super(owner,"关于记事本",true);我吧owner改成tf并没有看出什么变化,看了一会API文档后还是一头雾水,求解释了
解决方案 »
- byte数组中可以装其他类型的数据吗?
- 再请教个关于list 显示的问题,能实现这样的效果么?
- www.netyi.net重新改版,欢迎所有的开发者到这里分享您的经验,下载您需要的资料。
- 在jsp页面有各种标签能实现国际化。如果在一个java程序中,如何调用国际化资源消息呢?
- 急!-------JTextField内如何控制"Control+V"????
- 大家帮帮我
- 为何我的JTabbedPane上只能放一个控件?
- 谁能告诉我J2EE,J2ME,J2SE三种平台有什么区别,那个比较好,比较流行?
- 分数不封顶!请教!
- java io中,字节读取文件read方法读取完的东西存放在哪?
- 新人求助:关于论坛里的一点资料
- 递归遍历所有目录以及子目录的方法
其次给你解释一下owner,不就是一个参数吗, 在实际应用中,我们通常在一个窗口点击某个组件新建一个窗口,但是新建的窗口要用到老窗口的一些都东西。
再次,这种传入参数在swing中体现了一种层次关系, 当新窗口存在的时候, 就窗口,也就是OWNER是不能被操作的,这就防止了同时执行一个窗口的多个动作
这里把true改为false然后,执行程序,在打开dialog框的状态下,分别关闭jf和tf,看dialog框是随着谁的关闭而关闭的.
然后,把owner改成tf,再按上面的方式执行下,看这次dialog框是随着谁的关闭而关闭的.
如此可以看出来区别.
感觉java的界面编程什么的很迷糊,像微软的话先了解一下消息机制,后面就好懂了,但是最近写几个界面,迷迷糊糊的! 都不知道底层如何实现的!