importstaticjava.lang.Math.random;importjava.awt.*;importjava.awt.event.*;importjavax.swing.*;publicclassMainFrameextendsJFrame{privatestaticlongscore=0;//分数privatestat...
import static java.lang.Math.random;
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class MainFrame extends JFrame {
private static long score = 0;//分数
private static Integer ammoNum = 5;//子弹数量
private static JLabel scoreLabel;//分数
private BackgroundPanel backgroundPanel;
private static JLabel ammoLabel;
private static JPanel infoPane;
/**
* 构造方法
*/
public MainFrame() {
super();//调用父类构造函数
setResizable(false);//进制调整窗体大小
setTitle("打猎游戏");//设置游戏名
infoPane = (JPanel) getGlassPane();//获取窗体信息
JLabel label = new JLabel("装载子弹……");//定义一个对象并调用构造函数
label.setHorizontalAlignment(SwingConstants.CENTER);//设置水平线
label.setFont(new Font("楷体", Font.BOLD, 32));//设置字体
label.setForeground(Color.RED);//设置前背景色
infoPane.setLayout(new BorderLayout());//设置容器面板布局
infoPane.add(label);//添加提示标签组件到玻璃面板
setAlwaysOnTop(true);//是窗体保持在最顶成
setBounds(100, 100, 573, 411);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
backgroundPanel = new BackgroundPanel();//创建带背景的面板
backgroundPanel.setImage(new ImageIcon(getClass()
.getResource("background.jpg")).getImage());//设置背景图片
getContentPane().add(backgroundPanel,BorderLayout.CENTER);
// 添加鼠标事件适配器
addMouseListener(new FrameMouseListener());//鼠标监听
scoreLabel = new JLabel();//初始化对象
/*窗体设置*/
scoreLabel.setHorizontalAlignment(SwingConstants.CENTER);
scoreLabel.setForeground(Color.ORANGE);
scoreLabel.setText("分数:");
scoreLabel.setBounds(25, 15, 120, 18);
backgroundPanel.add(scoreLabel);
ammoLabel = new JLabel();//初始化对象
/*窗体设置*/
ammoLabel.setForeground(Color.ORANGE);
ammoLabel.setHorizontalAlignment(SwingConstants.RIGHT);
ammoLabel.setText("子弹数量:" + ammoNum);
ammoLabel.setBounds(422, 15, 93, 18);
backgroundPanel.add(ammoLabel);
}
/**
* 加分方法
*/
public synchronized static void appScore(int num) {
score += num;
scoreLabel.setText("分数:" + score);
}
/**
展开