实例介绍
【实例简介】
【实例截图】
【核心代码】
package tankwar;
import java.awt.Color;
import java.awt.Font;
import java.awt.Graphics;
import java.awt.TextField;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.io.File;
import javax.swing.ButtonGroup;
import javax.swing.ImageIcon;
import javax.swing.JButton;
import javax.swing.JComboBox;
import javax.swing.JDialog;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JRadioButton;
import javax.swing.JSlider;
import javax.swing.event.ChangeEvent;
import javax.swing.event.ChangeListener;
import lightButton.LightButton;
import mapediter.MapEdit;
public class Main implements ActionListener{
private JFrame f;
private PanelX p;
private LightButton butStart;
private LightButton butEdit;
private LightButton butHelp;
private LightButton butAbort;
private int width;
private int height;
private LightButton butExit;
private JDialog set;
private Help help=new Help();
private Abort about=new Abort();
private String map;
private int max;
protected int style;
public Main() {
setF(new JFrame("TankWar 3.0"));
p=new PanelX();
p.setLayout(null);
butStart=new LightButton(20,210,140,50,"START");
butEdit=new LightButton(20,263,140,50,"Map Editer");
butHelp=new LightButton(20,316,140,50,"Help Doc");
butAbort=new LightButton(20,369,140,50,"About");
butExit=new LightButton(20,422,140,50,"Exit");
butStart.addActionListener(this);
butEdit.addActionListener(this);
butHelp.addActionListener(this);
butAbort.addActionListener(this);
butAbort.addActionListener(this);
butExit.addActionListener(this);
p.add(butStart);
p.add(butEdit);
p.add(butHelp);
p.add(butAbort);
p.add(butExit);
getF().add(p);
getF().setSize(0,0);
width=700;height=700;
getF().setDefaultCloseOperation(3);
getF().setResizable(true);
getF().setVisible(true);
for (int i = 0; i < width; i =20) {
getF().setSize(i,i*(height/width));
try {
Thread.sleep(10);
} catch (InterruptedException e) {}
}
}
public static void main(String[] args) {
new Main();
}
private class PanelX extends JPanel
{
/**
*
*/
private static final long serialVersionUID = 5954299196924652990L;
private ImageIcon backgrond;
@Override
protected void paintComponent(Graphics g) {
super.paintComponent(g);
backgrond=new ImageIcon(Main.class.getResource("/pic/start2.jpg"));
g.drawImage(backgrond.getImage(), 0, 0, 800, 830, 0, 0, backgrond.getIconWidth(), backgrond.getIconHeight(), null);
}
}
public void over()
{
for (int i = width; i >=0; i-=20) {
getF().setSize(i,i*(height/width));
try {
Thread.sleep(10);
} catch (InterruptedException e) {}
}
getF().setVisible(false);
}
@Override
public void actionPerformed(ActionEvent e) {
if(e.getSource()==butExit)
{
over();
}
else if(e.getSource()==butEdit)
{
new MapEdit(this);
}
else if(e.getSource()==butStart)
{
dialog();
try {
new TankWar(map,max,f,style);
} catch (Exception e1) {
}
}
else if(e.getSource()==butHelp)
{
help.setVisible(true);
}
else if(e.getSource()==butAbort)
{
about.setVisible(true);
}
}
private void dialog() {
set = new JDialog(f,true);
set.setVisible(false);
set.setTitle("游戏设置");
set.setBounds(200,100, 400, 600);
JLabel tankShow=new JLabel(new ImageIcon(Main.class.getResource("/pic/tanks.jpg")));
tankShow.setBounds(150, 0, 243, 400);
ButtonGroup tankGroup=new ButtonGroup();
final JRadioButton tank1=new JRadioButton("重型坦克:");
final JRadioButton tank2=new JRadioButton("主战坦克:");
final JRadioButton tank3=new JRadioButton("轻型坦克:");
tank1.setSelected(true);
tankGroup.add(tank1);
tankGroup.add(tank2);
tankGroup.add(tank3);
Font tankFont = new Font("黑体",3,22);
tank1.setFont(tankFont);
tank2.setFont(tankFont);
tank3.setFont(tankFont);
tank1.setBounds(0, 0, 150, 120);
tank2.setBounds(0, 140, 150, 120);
tank3.setBounds(0, 280, 150, 120);
JPanel dp = new JPanel(null);
File dir = new File("map");
String mapNames[]=dir.list();
final JComboBox list = new JComboBox();
for (int i = 0; i < mapNames.length; i ) {
list.addItem(mapNames[i]);
}
list.setBounds(100, 410, 250, 30);
JLabel labMap = new JLabel("地图:");
labMap.setFont(new Font("宋体", 1, 20));
labMap.setBounds(20, 410, 80, 30);
JLabel labMax=new JLabel("敌军数量:");
labMax.setFont(new Font("宋体", 1, 16));
labMax.setBounds(20, 470, 120, 30);
final JSlider slider = new JSlider(10, 50);
slider.setBounds(150, 470, 230, 50);
slider.setPaintTicks(true);
slider.setPaintLabels(true);
slider.setMajorTickSpacing(10);
slider.setMinorTickSpacing(2);
final TextField showMax = new TextField(String.valueOf(slider.getValue()));
showMax.setFont(new Font("", 0, 20));
showMax.setBackground(Color.WHITE);
showMax.setEditable(false);
showMax.setBounds(100, 470, 30, 30);
slider.addChangeListener(new ChangeListener() {
public void stateChanged(ChangeEvent e) {
showMax.setText(String.valueOf(slider.getValue()));
}
});
JButton butOk = new JButton("开始游戏");
butOk.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
max=slider.getValue();
map=(String)list.getSelectedItem();
set.setVisible(false);
if(tank1.isSelected()) style=1;
else if(tank2.isSelected()) style=2;
else if (tank3.isSelected()) style=3;
over();
}
});
butOk.setBounds(120, 530, 140, 30);
dp.add(tank1);
dp.add(tank2);
dp.add(tank3);
dp.add(tankShow);
dp.add(butOk);
dp.add(showMax);
dp.add(labMap);
dp.add(list);
dp.add(labMax);
dp.add(slider);
set.add(dp);
set.setVisible(true);
}
public void setF(JFrame f) {
this.f = f;
}
public JFrame getF() {
return f;
}
}
好例子网口号:伸出你的我的手 — 分享!
小贴士
感谢您为本站写下的评论,您的评论对其它用户来说具有重要的参考价值,所以请认真填写。
- 类似“顶”、“沙发”之类没有营养的文字,对勤劳贡献的楼主来说是令人沮丧的反馈信息。
- 相信您也不想看到一排文字/表情墙,所以请不要反馈意义不大的重复字符,也请尽量不要纯表情的回复。
- 提问之前请再仔细看一遍楼主的说明,或许是您遗漏了。
- 请勿到处挖坑绊人、招贴广告。既占空间让人厌烦,又没人会搭理,于人于己都无利。
关于好例子网
本站旨在为广大IT学习爱好者提供一个非营利性互相学习交流分享平台。本站所有资源都可以被免费获取学习研究。本站资源来自网友分享,对搜索内容的合法性不具有预见性、识别性、控制性,仅供学习研究,请务必在下载后24小时内给予删除,不得用于其他任何用途,否则后果自负。基于互联网的特殊性,平台无法对用户传输的作品、信息、内容的权属或合法性、安全性、合规性、真实性、科学性、完整权、有效性等进行实质审查;无论平台是否已进行审查,用户均应自行承担因其传输的作品、信息、内容而可能或已经产生的侵权或权属纠纷等法律责任。本站所有资源不代表本站的观点或立场,基于网友分享,根据中国法律《信息网络传播权保护条例》第二十二与二十三条之规定,若资源存在侵权或相关问题请联系本站客服人员,点此联系我们。关于更多版权及免责申明参见 版权及免责申明


网友评论
我要评论