实例介绍
【实例简介】
【实例截图】
【核心代码】
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小时内给予删除,不得用于其他任何用途,否则后果自负。基于互联网的特殊性,平台无法对用户传输的作品、信息、内容的权属或合法性、安全性、合规性、真实性、科学性、完整权、有效性等进行实质审查;无论平台是否已进行审查,用户均应自行承担因其传输的作品、信息、内容而可能或已经产生的侵权或权属纠纷等法律责任。本站所有资源不代表本站的观点或立场,基于网友分享,根据中国法律《信息网络传播权保护条例》第二十二与二十三条之规定,若资源存在侵权或相关问题请联系本站客服人员,点此联系我们。关于更多版权及免责申明参见 版权及免责申明
网友评论
我要评论