📄 mainframe.java
字号:
/*
* mainFrame.java
*
* Created on 2001年12月27日, 下午3:40
*
* To change this template, choose Tools | Template Manager
* and open the template in the editor.
*/
package shoot_birds;
import java.awt.BorderLayout;
import java.awt.Toolkit;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.util.Random;
import javax.swing.*;
/**
*程序面板
* @author open
*/
public class mainFrame extends JFrame
{
/** Creates a new instance of mainFrame */
public mainFrame() {
String a = System.getProperty("user.dir");//得到位置
this.setIconImage(Toolkit.getDefaultToolkit().getImage(a+"\\shoot_birds\\images\\bird.gif"));//设置图标
init();
setLayout();
}
private void setLayout()
{
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
this.setSize(300,350);
this.setResizable(false);//窗口大小不可改变
/*箱子布局界面元素*/
Box box=Box.createVerticalBox();
Box box1=Box.createHorizontalBox();
Box box2=Box.createHorizontalBox();
box1.add(label1);
box1.add(getBirdNumText());
box1.add(test);
box2.add(label2);
box2.add(getBulletNumText());
box2.add(label3);
box2.add(field3);
box.add(box1);
box.add(box2);
add(panel,BorderLayout.CENTER);
add(box,BorderLayout.SOUTH);
/*游戏开始*/
test.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
startGame();
}
});
}
private void init()
{
label1=new JLabel("剩余鸟的数目");
label2=new JLabel("剩余子弹数目");
label3=new JLabel("打死鸟数");
field3=new JTextField(10);//显示打死的鸟数
field3.setEditable(false);//不可编辑
setBirdNumText(new JTextField(20));//显示剩余鸟的数目
setBulletNumText(new JTextField(10));//显示剩余子弹数目
getBirdNumText().setEditable(false);
getBulletNumText().setEditable(false);
panel=new birdpanel();//画板,所有的鸟都在这片天空飞啊飞
test=new JButton("开始游戏");
panel.add(test);
}
public void startGame()
{
/*初始化并启动加鸟线程
* 考虑到鸟市随机添加的,鸟的速度也是随机的
* 所以单独一个线程来产生随机数并添加鸟类实例
* */
Runnable rr=new RunRandomBirds(panel);
Thread t=new Thread(rr);
t.start();
/**
* 监控鸟的数目以及子弹的数目
* 单独启动一个线程来监控
* 这样更为灵活方便
* */
Runnable rr2=new StatThread(panel,this);
Thread tt=new Thread(rr2);
tt.start();
}
/*为了在监控线呈里面能设置JTextFile实例们的值,显然得有得到他们的Get方法*/
public JTextField getBirdNumText() {
return birdNumText;
}
public void setBirdNumText(JTextField birdNumText) {
this.birdNumText = birdNumText;
}
public JTextField getBulletNumText() {
return bulletNumText;
}
public void setBulletNumText(JTextField bulletNumText) {
this.bulletNumText = bulletNumText;
}
public JTextField getField3() {
return field3;
}
public void setField3(JTextField field3) {
this.field3 = field3;
}
private JButton test;
private JTextField birdNumText,bulletNumText,field3;//参数的意义上面已经有解释了
private JLabel label1,label2,label3;
private birdpanel panel;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -