Swing创制窗口

上节我们聊起GUI(Graphical User
Interface)的定义,并学习GUI编制程序中根本需调控四个包,分别是:AWT和Swing,本节大家会透过Swing程序中常用的类和控件来落到实处率先个窗口。

javax.swing.JFrame

JFrame在GUI中为3个窗口对象,承接于Frame。JFrame控件用于在Swing程序中开创窗体。如表1所示,为JFrame常见的构造方法。

注意:

Java语言规定在GUI编制程序中其余窗口实例化出来时默以为不可知(即潜伏)状态,所以当大家采取构造方法实例化JFrame对象时,是不可知的。

JFrame中还富含了展现窗体和不少对窗体属性(如大小、颜色等)举办安装的不二等秘书籍,如表二所示。

刺探了JFrame类常用的构造方法和分子方法后,接下去我们利用八个示范来创立二个简短的窗口,如示例一所示。

【示例一】创制3个总结的窗口

packagecn.sxt.views.testjframe;

importjava.awt.Color;

importjavax.swing.JFrame;

publicclassJFrameDemo1{

publicstaticvoidmain(String[ ]args) {

JFramef=newJFrame();//创造3个新窗体

f.setSize(500,400);//设置窗体大小

f.setVisible(true);//设置窗体可知

f.setBackground(Color.black);//设置颜色无效

}

}

如上,main方法中的第三行代码实例化了多个窗口对象,第三行代码设置窗口的尺码(注意:尺寸的一定为像素),因为窗口默以为不可知,所以第贰行代码设置让窗口可知。在JFrame中还有3个show()方法也得以让窗口可知,可是不引入使用,因为show()只可以让窗口可知,但是setVisible若是传入参数true则窗口可见,传入参数false则窗口不可知,所以setVisible方法比show方法越来越灵敏。

示例一的实践结果如图所示:

图示例一运行作效果果图

其余大家发现使用setBackground方法退换窗体颜色在JFrame中没用,因为该格局是承接于Frame的。在JFrame要用:JFrame.getContentPane().setBackground(Color.bule);
如示例二所示。

【示例二】改造窗体的颜色

packagecn.sxt.views.testjframe;

importjava.awt.Color;

importjavax.swing.JFrame;

publicclassJFrameDemo2{

publicstaticvoidmain(String[ ]args) {

JFramef=newJFrame();//成立贰个新窗体

f.setSize(500,400);//设置窗体大小

f.setVisible(true);//设置窗体可知

//f.setBackground(Color.blue);//设置颜色无效

//若要使用JFrame改造窗体的颜色,须要利用该方式

f.getContentPane().setBackground(Color.black);

}

}

施行结果如图所示:

图 示例贰运转效果图

上述三个示范中成立的窗体暗中认可是足以由用户调控大小的,即便大家不想让窗口的高低随意调节,并且将创设窗体的代码举行包装,能够动用示例叁中的代码。

【示例3】创造不可调节大小的窗体

packagecn.sxt.views.testjframe;

importjavax.swing.JFrame;

classJFrameDemo3extendsJFrame {

publicJFrameDemo3() {

init();

}

//该方法对窗口做开首化

privatevoidinit() {

//设置窗口标题栏上音信

this.setTitle(“第贰个窗口”);

//设置窗口大小为宽:500,高:400

this.setSize(500, 400);

//设置窗口不可能被调节大小

this.setResizable(false);

//设置窗口可知

this.setVisible(true);

}

}

publicclassTest {

publicstaticvoidmain(String[ ]args) {

//调用JFrame德姆o叁的构造方法创造并出示窗体

newJFrameDemo3();

}

}

推行结果如图所示:

图示例三运营效果图

可是仔细的读者会意识,该窗口关闭时,应用程序并未终止。那是因为Java规定:窗口私下认可的关闭情势只是不可知,这就招致大家关闭三个窗口时,窗口其实是隐藏了,而不是先后甘休了,所以要消除这几个题目,必要在init()方法中this.setVisible(true);这句代码之前加多this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
那个措施,该措施的效用是安装窗口的关门方式,它的形参为int型,而JFrame已经为各样不一样的停业情势设置了常量,JFrame.EXIT_ON_CLOSE
的意趣正是停业时退出应用程序,其它常见的此外常量还有:JFrame.DISPOSE_ON_CLOSE(该常量的情趣为:关闭时退出该窗口),JFrame.DO_NOTHING_ON_CLOSE
(该常量的意味为:关闭时不做任何处理)等。

然则在写init()方法时,建议将setVisible方法写在init方法中的最后一句,窗口设置甘休后再让窗口展现。调控JFrame德姆o叁中的代码如示例四所示。

【示例肆】设置窗体的停业格局

航天科工,classJFrameDemo3extendsJFrame {

publicJFrameDemo3() {

init();

}

//该措施对窗口做起头化

privatevoidinit() {

//设置窗口题目栏上信息

this.setTitle(“第3个窗口”);

//设置窗口大小为宽:500,高:400

this.setSize(500, 400);

//设置窗口不可能被调动大小

this.setResizable(false);

//关闭窗口时,程序截至

this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

//设置窗口可知

this.setVisible(true);

}

}

「全栈Java笔记」是壹部能帮大家从零到10%人为全栈Java工程师体系笔记。作者江洛杉矶湖人队(Los Angeles Lakers)称
Mr.
G,十年Java研究开发经验,曾在神州数码、航天院某所研究开发大旨从事软件设计及研发工作,从小白慢慢做到工程师、高工、架构师。精晓Java平台软件开拓,了解JAVAEE,熟知种种流行开辟框架。

笔记包括从浅入深的六大学一年级些:

A-Java入门阶段

B-数据库从入门到精通

C-手刃移动前端和Web前端

D-J二EE从精通到实战

E-Java高等框架精解

F-Linux和Hadoop

发表评论

电子邮件地址不会被公开。 必填项已用*标注