创建框架
在Java中,顶层窗口(就是没有包含在任何其他窗口中的窗口)被称为框架(frame)。
在AWT库中有一个称为Frame的类,用于描述顶层窗口。这个类的Swing版本名为JFrame,它扩展于Frame类。
JFrame是极少数几个不绘制在画布上的Swing组件之一。因此,它的修饰部件(按钮、标题栏、图标等)由用户的窗口系统绘制,而不是由Swing绘制。
注意:绝大多数Swing组件类都以“J”开头,例如,JButton,JFrame等。在Java中有Button和Frame这样的类,但它们属于AWT组件。如果偶尔忘记了“J”程序仍然可以编译和运行,但是将Swing和AWT组件混合在一起使用将会导致视觉和行为的不一致。
现在我们来做一个示例,依然是选择使用工具Eclipse。
首先为了便于管理和维护,我们建立一个包,包名起为SwingDemo。然后建立它的子包No1。
在子包内我们先建立两个文件,一个是用于建立框架的文件JframeDemo.java,用来存放框架代码,另一个用于演示的文件Demo.java用来编写main方法做演示。
首先编写框架代码JframeDemo.java:
public class JframeDemo extends JFrame{
private static final int DEFAULT_WIDTH=300;
private static final int DEFAULT_HEIGHT=300;
public JframeDemo(){
setSize(DEFAULT_WIDTH,DEFAULT_HEIGHT);
}
}
Demo演示文件的编写如下:
public class Demo{
public static void main(String[] args){
EventQueue.invokeLater(()->{
JFrame frame=new JframeDemo();
frame.setDefaultCloseOperation("JFrame.EXIT_ON_CLOSE);
frame.setVisible(true);
}
}
}
在这段代码中:
首先建立了一个框架文件JframeDemo它继承与JFrame类,所以他可以直接使用setSize()方法来设置框架的大小。
在main方法中使用了EventQueue对象的invokeLater方法,这个方法中只有一个线程参数,所以我们使用了Lamdba表达式(相关内容稍后可以在相关文件中查看)。
其中首先使用了JFrame多态,创建了一个frame实例,然后下面分别设置了setDefaultCloseOperation()(关闭这个框架时的相应动作,退出)setVisible()是否显示框架。具体参数稍后具体编写。