Java Swing JFrame窗口的实现
1.概述
官方JavaDocsApi:javax.swing.JFrame
JFrame,窗口。JFrame是一个可以独立显示的组件,一个窗口通常包含有标题、图标、操作按钮(关闭、最小化、最大化),还可以为窗口添加菜单栏、工具栏等。一个进程中可以创建多个窗口,并可在适当时候进行显示、隐藏或销毁。
JFrame常用构造方法:
/** *参数说明: *title:窗口标题 */ JFrame() JFrame(Stringtitle)
JFrame常用方法:
//设置窗口的标题 voidsetTitle(Stringtitle) //设置窗口的图标 voidsetIconImage(Imageimage) //设置窗口的宽高 voidsetSize(intwidth,intheight) voidsetSize(Dimensiond) /** *设置窗口关闭按钮点击后的默认操作,参考值: *WindowConstants.DO_NOTHING_ON_CLOSE:不执行任何操作。 *WindowConstants.HIDE_ON_CLOSE:隐藏窗口(不会结束进程),再次调用setVisible(true)将再次显示。 *WindowConstants.DISPOSE_ON_CLOSE:销毁窗口,如果所有可显示的窗口都被DISPOSE,则可能会自动结束进程。 *WindowConstants.EXIT_ON_CLOSE:退出进程。 */ voidsetDefaultCloseOperation(intoperation) //设置窗口是否可放大缩小 voidsetResizable(booleanresizable) //设置窗口的位置(相对于屏幕左上角) voidsetLocation(intx,inty) voidsetLocation(Pointp) //设置窗口的位置和宽高 voidsetBounds(intx,inty,intwidth,intheight) voidsetBounds(Rectanglerect) //获取窗口的位置坐标(相对于屏幕坐标空间) PointgetLocationOnScreen() //获取窗口的位置坐标(相对于父级坐标空间,窗口的父级一般就是屏幕) PointgetLocation() /** *设置窗口的相对位置。 *如果comp整个显示区域在屏幕内,则将窗口放置到comp的中心; *如果comp显示区域有部分不在屏幕内,则将该窗口放置在最接近comp中心的一侧; *comp为null,表示将窗口放置到屏幕中心。 */ voidsetLocationRelativeTo(Componentcomp) //设置将窗口置顶显示 voidsetAlwaysOnTop(booleanalwaysOnTop) //设置窗口的内容面板 voidsetContentPane(ContainercontentPane) //设置窗口是否可见,窗口对象刚创建和添加相应组件后通过setVisible(true)绘制窗口,其内部组件可能要此时才有宽高值 voidsetVisible(booleanb) //判断窗口是否处于显示状态 booleanisShowing() //销毁窗口,释放窗口及其所有子组件占用的资源,之后再次调用setVisible(true)将会重构窗口 voiddispose() //调整窗口的大小,以适合其子组件的首选大小和布局。 voidpack()
2.代码实例
packagecom.xiets.swing;
importjavax.swing.*;
importjava.awt.*;
importjava.awt.event.ActionEvent;
importjava.awt.event.ActionListener;
publicclassMain{
publicstaticvoidmain(String[]args){
finalJFramejf=newJFrame("测试窗口");
jf.setSize(400,400);
jf.setLocationRelativeTo(null);
jf.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
JPanelpanel=newJPanel();
JButtonbtn=newJButton("ShowNewWindow");
btn.addActionListener(newActionListener(){
@Override
publicvoidactionPerformed(ActionEvente){
//点击按钮,显示新的一个窗口
showNewWindow(jf);
}
});
panel.add(btn);
jf.setContentPane(panel);
jf.setVisible(true);
}
publicstaticvoidshowNewWindow(JFramerelativeWindow){
//创建一个新窗口
JFramenewJFrame=newJFrame("新的窗口");
newJFrame.setSize(250,250);
//把新窗口的位置设置到relativeWindow窗口的中心
newJFrame.setLocationRelativeTo(relativeWindow);
//点击窗口关闭按钮,执行销毁窗口操作(如果设置为EXIT_ON_CLOSE,则点击新窗口关闭按钮后,整个进程将结束)
newJFrame.setDefaultCloseOperation(WindowConstants.DISPOSE_ON_CLOSE);
//窗口设置为不可改变大小
newJFrame.setResizable(false);
JPanelpanel=newJPanel(newGridLayout(1,1));
//在新窗口中显示一个标签
JLabellabel=newJLabel("这是一个窗口");
label.setFont(newFont(null,Font.PLAIN,25));
label.setHorizontalAlignment(SwingConstants.CENTER);
label.setVerticalAlignment(SwingConstants.CENTER);
panel.add(label);
newJFrame.setContentPane(panel);
newJFrame.setVisible(true);
}
}
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持毛票票。
声明:本文内容来源于网络,版权归原作者所有,内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎发送邮件至:czq8825#qq.com(发邮件时,请将#更换为@)进行举报,并提供相关证据,一经查实,本站将立刻删除涉嫌侵权内容。