📄 hrd.java
字号:
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import java.net.*;
import sun.audio.*;
import javax.swing.border.*;
import java.io.*;
import java.awt.event.ActionListener;
import java.awt.event.ActionEvent;
import java.awt.event.WindowListener;
import java.util.EventListener;
import java.awt.event.WindowEvent;
public class HRD extends JFrame implements ActionListener, WindowListener
{
public static int js; //计数用
public static int qm; //用于控制是否有走棋的声音
JMenuBar jmb; //声明菜单
JMenu jm1;
JMenu jm2;
// JMenu jm2_1;
JMenu jm2_2;
// ButtonGroup bg1;
ButtonGroup bg2;
// JRadioButtonMenuItem rbmi1_1;
// JRadioButtonMenuItem rbmi1_2;
JRadioButtonMenuItem rbmi2_1;
JRadioButtonMenuItem rbmi2_2;
JMenuItem mnn;
JMenuItem mne;
JMenuItem mnbz; //声明菜单
JLabel lbn=new JLabel(" ");
JLabel lbe=new JLabel(" ");
JLabel lbw=new JLabel(" ");
JLabel lbs1=new JLabel(" ");
JLabel lbs2=new JLabel(" ");
JLabel lbs3=new JLabel(" ");
JPanel pns=new JPanel();
JPanel pnc=new JPanel(); //中心的面板
URL url1 = getClass().getResource("/picture/caocao.jpg");
URL url2 = getClass().getResource("/picture/guanyu.jpg");
URL url3 = getClass().getResource("/picture/zhangfei.jpg");
URL url4 = getClass().getResource("/picture/zhaoyun.jpg");
URL url5 = getClass().getResource("/picture/machao.jpg");
URL url6 = getClass().getResource("/picture/huangzhong.jpg");
URL url7 = getClass().getResource("/picture/zu.jpg");
ImageIcon pcc=new ImageIcon(url1); //按钮图片
ImageIcon pgy=new ImageIcon(url2);
ImageIcon pzf=new ImageIcon(url3);
ImageIcon pzy=new ImageIcon(url4);
ImageIcon pmc=new ImageIcon(url5);
ImageIcon phz=new ImageIcon(url6);
ImageIcon pz=new ImageIcon(url7);
JButton btcc=new JButton("",pcc); //制做按钮
JButton btgy=new JButton("",pgy);
JButton btzf=new JButton("",pzf);
JButton btzy=new JButton("",pzy);
JButton btmc=new JButton("",pmc);
JButton bthz=new JButton("",phz);
JButton btz1=new JButton("",pz);
JButton btz2=new JButton("",pz);
JButton btz3=new JButton("",pz);
JButton btz4=new JButton("",pz);
JButton btk1=new JButton("");
JButton btk2=new JButton(""); //制做按钮
public int bx,by; //用来记录所点BUTTON所在的坐标
public int x1,y1; //用来记录btk1和btk2的坐标
public int x2,y2; //大棋子一次移动两个空间,这个是用来查看btk1和btk2是不是在一起
public int lx,ly; //用来暂时存放选中的BUTTON的坐标,用于跟btk交换位置
public int sx,sy; //用来记录所点BUTTON的尺寸
HRD(String str)
{
super(str);
js=0;
qm=0;
jmb=new JMenuBar(); //菜单
jm1=new JMenu("文件(F)");
jm2=new JMenu("音乐(M)");
// jm2_1=new JMenu("背景音乐");
jm2_2=new JMenu("棋子音效");
// bg1=new ButtonGroup();
bg2=new ButtonGroup();
// rbmi1_1=new JRadioButtonMenuItem("开");
// rbmi1_2=new JRadioButtonMenuItem("关");
rbmi2_1=new JRadioButtonMenuItem("开",true);
rbmi2_2=new JRadioButtonMenuItem("关");
mnn=new JMenuItem("重新开始(N)");
mnbz=new JMenuItem("帮助(H)");
mne=new JMenuItem("退出(E)");
jm1.setMnemonic('F');
jm2.setMnemonic('M');
mnn.setMnemonic('N');
mnbz.setMnemonic('H');
mne.setMnemonic('E');
jm1.add(mnn);
jm1.add(mnbz);
jm1.addSeparator();
jm1.add(mne);
// bg1.add(rbmi1_1);
// bg1.add(rbmi1_2);
bg2.add(rbmi2_1);
bg2.add(rbmi2_2);
// jm2_1.add(rbmi1_1);
// jm2_1.add(rbmi1_2);
jm2_2.add(rbmi2_1);
jm2_2.add(rbmi2_2);
// jm2.add(jm2_1);
jm2.add(jm2_2);
jmb.add(jm1);
jmb.add(jm2);
this.setJMenuBar(jmb);//菜单
mnn.addActionListener(this);
mnbz.addActionListener(this);
mne.addActionListener(this);
rbmi2_1.addActionListener(this);
rbmi2_2.addActionListener(this);
lbn.setOpaque(true); //把Lable框设为不透明
lbe.setOpaque(true);
lbw.setOpaque(true);
lbs1.setOpaque(true);
lbs2.setOpaque(true);
lbs3.setOpaque(true); //把Lable框设为不透明
lbn.setBackground(Color.LIGHT_GRAY);//设Lable的颜色
lbe.setBackground(Color.LIGHT_GRAY);
lbw.setBackground(Color.LIGHT_GRAY);
lbs1.setBackground(Color.LIGHT_GRAY);
lbs2.setBackground(new Color(200,0,20));//设下框中间的部分为红色
lbs3.setBackground(Color.LIGHT_GRAY);//设Lable的颜色
pns.setBackground(Color.BLACK);
pns.setLayout(new BorderLayout());
pns.add(lbs1,BorderLayout.EAST);
pns.add(lbs2,BorderLayout.CENTER);
pns.add(lbs3,BorderLayout.WEST); //以上是做边框
pnc.setBackground(Color.BLACK);
btk1.setBackground(Color.BLACK);//黑按钮
btk2.setBackground(Color.BLACK);//黑按钮
pnc.setLayout(null);
btzf.setBounds(0,0,82,164); //设置按所在的位置和大小
btcc.setBounds(82,0,164,164);
btzy.setBounds(246,0,82,164);
btmc.setBounds(0,164,82,164);
btgy.setBounds(82,164,164,82); //82为单位
bthz.setBounds(246,164,82,164);
btz1.setBounds(0,328,82,82);
btz2.setBounds(82,246,82,82);
btz3.setBounds(164,246,82,82);
btz4.setBounds(246,328,82,82); //设置按所在的位置和大小
btk1.setBounds(82,328,82,82);
btk2.setBounds(164,328,82,82);
/* btzf.setBounds(0,0,82,164); //实验曹操用
btcc.setBounds(82,164,164,164);
btzy.setBounds(246,0,82,164);
btmc.setBounds(0,164,82,164);
btgy.setBounds(82,0,164,82);
bthz.setBounds(246,164,82,164);
btz1.setBounds(0,328,82,82);
btz2.setBounds(82,246,82,82);
btz3.setBounds(164,246,82,82);
btz4.setBounds(246,328,82,82);
btk1.setBounds(82,328,82,82);
btk2.setBounds(164,328,82,82);*/
btzf.addActionListener(this);
btcc.addActionListener(this);
btzy.addActionListener(this);
btmc.addActionListener(this);
btgy.addActionListener(this);
bthz.addActionListener(this);
btz1.addActionListener(this);
btz2.addActionListener(this);
btz3.addActionListener(this);
btz4.addActionListener(this);
btk1.addActionListener(this);
btk2.addActionListener(this);
pnc.add(btzf);
pnc.add(btcc);
pnc.add(btzy);
pnc.add(btmc);
pnc.add(btgy);
pnc.add(bthz);
pnc.add(btz1);
pnc.add(btz2);
pnc.add(btz3);
pnc.add(btz4);
pnc.add(btk1);
pnc.add(btk2);
Container con=this.getContentPane();
con.add(lbn,BorderLayout.NORTH);
con.add(lbe,BorderLayout.EAST);
con.add(lbw,BorderLayout.WEST);
con.add(pns,BorderLayout.SOUTH);
con.add(pnc,BorderLayout.CENTER);
con.setBackground(Color.BLACK);
this.setSize(375,503);
this.addWindowListener(this);
this.setResizable(false); //固定窗体
//以下是在屏幕中间显示出来
Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize();
Dimension frameSize = this.getSize();
if (frameSize.height > screenSize.height) {
frameSize.height = screenSize.height;
}
if (frameSize.width > screenSize.width) {
frameSize.width = screenSize.width;
}
this.setLocation((screenSize.width - frameSize.width) / 2, (screenSize.height - frameSize.height) / 2);
//以下告诉窗口如果用户不进行手工退出工作(System.exit(0))的情况下什么都不要做,
//以防窗口自动处理掉
this.setDefaultCloseOperation(JFrame.DO_NOTHING_ON_CLOSE);
}
public void actionPerformed(ActionEvent e) {
if(e.getSource()==btz1)
{
btzf.setBorder(BorderFactory.createEtchedBorder());
btcc.setBorder(BorderFactory.createEtchedBorder());
btzy.setBorder(BorderFactory.createEtchedBorder());
btmc.setBorder(BorderFactory.createEtchedBorder());
btgy.setBorder(BorderFactory.createEtchedBorder());
bthz.setBorder(BorderFactory.createEtchedBorder());
btz1.setBorder(BorderFactory.createEtchedBorder());
btz2.setBorder(BorderFactory.createEtchedBorder());
btz3.setBorder(BorderFactory.createEtchedBorder());
btz4.setBorder(BorderFactory.createEtchedBorder());
btz1.setBorder(BorderFactory.createLineBorder(new Color(200,0,20),2));
bx=btz1.getX();
by=btz1.getY();
sx=82;
sy=82;
}
if(e.getSource()==btz2)
{
btzf.setBorder(BorderFactory.createEtchedBorder());
btcc.setBorder(BorderFactory.createEtchedBorder());
btzy.setBorder(BorderFactory.createEtchedBorder());
btmc.setBorder(BorderFactory.createEtchedBorder());
btgy.setBorder(BorderFactory.createEtchedBorder());
bthz.setBorder(BorderFactory.createEtchedBorder());
btz1.setBorder(BorderFactory.createEtchedBorder());
btz2.setBorder(BorderFactory.createEtchedBorder());
btz3.setBorder(BorderFactory.createEtchedBorder());
btz4.setBorder(BorderFactory.createEtchedBorder());
btz2.setBorder(BorderFactory.createLineBorder(new Color(200,0,20),2));
bx=btz2.getX();
by=btz2.getY();
sx=82;
sy=82;
}
if(e.getSource()==btz3)
{
btzf.setBorder(BorderFactory.createEtchedBorder());
btcc.setBorder(BorderFactory.createEtchedBorder());
btzy.setBorder(BorderFactory.createEtchedBorder());
btmc.setBorder(BorderFactory.createEtchedBorder());
btgy.setBorder(BorderFactory.createEtchedBorder());
bthz.setBorder(BorderFactory.createEtchedBorder());
btz1.setBorder(BorderFactory.createEtchedBorder());
btz2.setBorder(BorderFactory.createEtchedBorder());
btz3.setBorder(BorderFactory.createEtchedBorder());
btz4.setBorder(BorderFactory.createEtchedBorder());
btz3.setBorder(BorderFactory.createLineBorder(new Color(200,0,20),2));
bx=btz3.getX();
by=btz3.getY();
sx=82;
sy=82;
}
if(e.getSource()==btz4)
{
btzf.setBorder(BorderFactory.createEtchedBorder());
btcc.setBorder(BorderFactory.createEtchedBorder());
btzy.setBorder(BorderFactory.createEtchedBorder());
btmc.setBorder(BorderFactory.createEtchedBorder());
btgy.setBorder(BorderFactory.createEtchedBorder());
bthz.setBorder(BorderFactory.createEtchedBorder());
btz1.setBorder(BorderFactory.createEtchedBorder());
btz2.setBorder(BorderFactory.createEtchedBorder());
btz3.setBorder(BorderFactory.createEtchedBorder());
btz4.setBorder(BorderFactory.createEtchedBorder());
btz4.setBorder(BorderFactory.createLineBorder(new Color(200,0,20),2));
bx=btz4.getX();
by=btz4.getY();
sx=82;
sy=82;
}
if(e.getSource()==btzf)
{
btzf.setBorder(BorderFactory.createEtchedBorder());
btcc.setBorder(BorderFactory.createEtchedBorder());
btzy.setBorder(BorderFactory.createEtchedBorder());
btmc.setBorder(BorderFactory.createEtchedBorder());
btgy.setBorder(BorderFactory.createEtchedBorder());
bthz.setBorder(BorderFactory.createEtchedBorder());
btz1.setBorder(BorderFactory.createEtchedBorder());
btz2.setBorder(BorderFactory.createEtchedBorder());
btz3.setBorder(BorderFactory.createEtchedBorder());
btz4.setBorder(BorderFactory.createEtchedBorder());
btzf.setBorder(BorderFactory.createLineBorder(new Color(200,0,20),2));
bx=btzf.getX();
by=btzf.getY();
sx=82;
sy=164;
}
if(e.getSource()==btzy)
{
btzf.setBorder(BorderFactory.createEtchedBorder());
btcc.setBorder(BorderFactory.createEtchedBorder());
btzy.setBorder(BorderFactory.createEtchedBorder());
btmc.setBorder(BorderFactory.createEtchedBorder());
btgy.setBorder(BorderFactory.createEtchedBorder());
bthz.setBorder(BorderFactory.createEtchedBorder());
btz1.setBorder(BorderFactory.createEtchedBorder());
btz2.setBorder(BorderFactory.createEtchedBorder());
btz3.setBorder(BorderFactory.createEtchedBorder());
btz4.setBorder(BorderFactory.createEtchedBorder());
btzy.setBorder(BorderFactory.createLineBorder(new Color(200,0,20),2));
bx=btzy.getX();
by=btzy.getY();
sx=82;
sy=164;
}
if(e.getSource()==btmc)
{
btzf.setBorder(BorderFactory.createEtchedBorder());
btcc.setBorder(BorderFactory.createEtchedBorder());
btzy.setBorder(BorderFactory.createEtchedBorder());
btmc.setBorder(BorderFactory.createEtchedBorder());
btgy.setBorder(BorderFactory.createEtchedBorder());
bthz.setBorder(BorderFactory.createEtchedBorder());
btz1.setBorder(BorderFactory.createEtchedBorder());
btz2.setBorder(BorderFactory.createEtchedBorder());
btz3.setBorder(BorderFactory.createEtchedBorder());
btz4.setBorder(BorderFactory.createEtchedBorder());
btmc.setBorder(BorderFactory.createLineBorder(new Color(200,0,20),2));
bx=btmc.getX();
by=btmc.getY();
sx=82;
sy=164;
}
if(e.getSource()==bthz)
{
btzf.setBorder(BorderFactory.createEtchedBorder());
btcc.setBorder(BorderFactory.createEtchedBorder());
btzy.setBorder(BorderFactory.createEtchedBorder());
btmc.setBorder(BorderFactory.createEtchedBorder());
btgy.setBorder(BorderFactory.createEtchedBorder());
bthz.setBorder(BorderFactory.createEtchedBorder());
btz1.setBorder(BorderFactory.createEtchedBorder());
btz2.setBorder(BorderFactory.createEtchedBorder());
btz3.setBorder(BorderFactory.createEtchedBorder());
btz4.setBorder(BorderFactory.createEtchedBorder());
bthz.setBorder(BorderFactory.createLineBorder(new Color(200,0,20),2));
bx=bthz.getX();
by=bthz.getY();
sx=82;
sy=164;
}
if(e.getSource()==btgy)
{
btzf.setBorder(BorderFactory.createEtchedBorder());
btcc.setBorder(BorderFactory.createEtchedBorder());
btzy.setBorder(BorderFactory.createEtchedBorder());
btmc.setBorder(BorderFactory.createEtchedBorder());
btgy.setBorder(BorderFactory.createEtchedBorder());
bthz.setBorder(BorderFactory.createEtchedBorder());
btz1.setBorder(BorderFactory.createEtchedBorder());
btz2.setBorder(BorderFactory.createEtchedBorder());
btz3.setBorder(BorderFactory.createEtchedBorder());
btz4.setBorder(BorderFactory.createEtchedBorder());
btgy.setBorder(BorderFactory.createLineBorder(new Color(200,0,20),2));
bx=btgy.getX();
by=btgy.getY();
sx=164;
sy=82;
}
if(e.getSource()==btcc)
{
btzf.setBorder(BorderFactory.createEtchedBorder());
btcc.setBorder(BorderFactory.createEtchedBorder());
btzy.setBorder(BorderFactory.createEtchedBorder());
btmc.setBorder(BorderFactory.createEtchedBorder());
btgy.setBorder(BorderFactory.createEtchedBorder());
bthz.setBorder(BorderFactory.createEtchedBorder());
btz1.setBorder(BorderFactory.createEtchedBorder());
btz2.setBorder(BorderFactory.createEtchedBorder());
btz3.setBorder(BorderFactory.createEtchedBorder());
btz4.setBorder(BorderFactory.createEtchedBorder());
btcc.setBorder(BorderFactory.createLineBorder(new Color(200,0,20),2));
bx=btcc.getX();
by=btcc.getY();
sx=164;
sy=164;
}
if(e.getSource()==btk1) //选中往btk1移动时
{
btzf.setBorder(BorderFactory.createEtchedBorder());
btcc.setBorder(BorderFactory.createEtchedBorder());
btzy.setBorder(BorderFactory.createEtchedBorder());
btmc.setBorder(BorderFactory.createEtchedBorder());
btgy.setBorder(BorderFactory.createEtchedBorder());
bthz.setBorder(BorderFactory.createEtchedBorder());
btz1.setBorder(BorderFactory.createEtchedBorder());
btz2.setBorder(BorderFactory.createEtchedBorder());
btz3.setBorder(BorderFactory.createEtchedBorder());
btz4.setBorder(BorderFactory.createEtchedBorder());
x1=btk1.getX();
y1=btk1.getY();
if(sx==82&&sy==82) //此处判断要移动的是否是卒
{
x1=btk1.getX();
y1=btk1.getY();
if(x1-bx==82&&y1-by==0) //用于卒向右btk1移动并看棋子与空格是否挨着
{
lx=bx;
ly=by;
if(bx==btz1.getX()&&by==btz1.getY())
{
btz1.move(x1,y1);
btk1.move(lx,ly);
js++;
if(qm==0)
{
new SoundPlayer();
}
}
if(bx==btz2.getX()&&by==btz2.getY())
{
btz2.move(x1,y1);
btk1.move(lx,ly);
js++;
if(qm==0)
{
new SoundPlayer();
}
}
if(bx==btz3.getX()&&by==btz3.getY())
{
btz3.move(x1,y1);
btk1.move(lx,ly);
js++;
if(qm==0)
{
new SoundPlayer();
}
}
if(bx==btz4.getX()&&by==btz4.getY())
{
btz4.move(x1,y1);
btk1.move(lx,ly);
js++;
if(qm==0)
{
new SoundPlayer();
}
}
}
if(x1-bx==164&&y1-by==0) //用于卒向右btk1移动并看棋子与空格中间是否还有btk2
{
x2=btk2.getX();
y2=btk2.getY();
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -