首先新建一个项目起名为飞机大战 - > 然后在该项目下新建一个视图的包 - > 在视图的包下新建一个生成窗口的类,起名为BaseFrame。
我们的BaseFrame是继承于JFrame的一个子类。
所以代码如下:
import javax.swing.JFrame;
public class BaseFrame extends JFrame{
}
由于我们要使用JFrame,所以我们需要导入javax.swing.Jframe这个包。
既然我们想生产一个窗口,那么为了代码的可读性,我们新建两个窗口宽和高的静态常量。
package view;
import javax.swing.JFrame;
public class BaseFrame extends JFrame{
public static int frameWidth = 512,
frameHeight = 768;
}
然后我们用setBounds把这个窗口放在100,0的位置
setBounds()接收四个int参数,前两个坐标,后两个是宽和高
package view;
import javax.swing.JFrame;
public class BaseFrame extends JFrame{
public static int frameWidth = 512,
frameHeight = 768;
public BaseFrame()
{
super("飞机大战");
setBounds(100, 0, frameWidth, frameHeight);
}
}
java中新建的窗口默认不显示, 我们还需要一条语句,
setVisible(true);
package view;
import javax.swing.JFrame;
public class BaseFrame extends JFrame{
public static int frameWidth = 512,
frameHeight = 768;
public BaseFrame()
{
super("飞机大战");
setBounds(100, 0, frameWidth, frameHeight);
setVisible(true);
}
}
还有一个小知识点,我们还需要修改页面布局,否则我们以后添加飞机都按默认布局添加了。
setLayout(null); 设置布局为空。
我们以后添加什么组件,就可以用,setBounds();来控制组件的位置了。
package view;
import javax.swing.JFrame;
public class BaseFrame extends JFrame{
public static int frameWidth = 512,
frameHeight = 768;
public BaseFrame()
{
super("飞机大战");
setBounds(100, 0, frameWidth, frameHeight);
setLayout(null);
setVisible(true);
}
}
然后我们在view包中在新建一个Main类,Main类是我们程序的入口,现在我们在Main方法中添加一个我们的窗口。
package view;
public class Main {
public static void main(String[] args) {
// TODO 自动生成的方法存根
new BaseFrame();
}
}
点击运行,成功弹出了一个灰灰的窗口。
还有一点要完善的就是我们的窗口得关闭哇,不然打开点击关闭没反应。(实际上没这条语句也有反应。这里我觉得可能是系统自动给我添加了)
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
package view;
import javax.swing.JFrame;
public class BaseFrame extends JFrame{
public static int frameWidth = 512,
frameHeight = 768;
public BaseFrame()
{
super("飞机大战");
setBounds(100, 0, frameWidth, frameHeight);
setLayout(null);
setVisible(true);
}
}
附加:
如果我们想控制窗口在屏幕中的位置,直接输入坐标不是一个好的选择。我们可以结合窗口宽高的常量和一个函数,这个函数可以返回我们窗口大小
Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize();
然后我们利用自己定义的常量窗口宽高,和screenSize来调整窗口的位置。
明天在写添加背景动画吧。