📄 mainjframe.java
字号:
//package pt1;
import javax.swing.*;
import java.awt.event.*;
public class mainJFrame extends JFrame implements ActionListener {
JMenuBar jmb;
JMenu jm1, jm2;
JMenuItem jm1_jmi1, jm1_jmi2, jm1_jmi3, jm1_jmi4, jm1_jmi5, jm1_jmi6,
jm1_jmi7, jm1_jmi8;
// --------------------
JToolBar jtb;// 工具栏
JButton jtb_jb1, jtb_jb2, jtb_jb3, jtb_jb4, jtb_jb5, jtb_jb6;
// ----------------
JPanel jp_bs;
JLabel jl_bs;
JTextField jtf_bs;
// -----------------------
MyJPanel pt;
MyJPanel2 pt2;
boolean restart = false, regame = false;
boolean cj = true, zj = false, gj = false;
boolean change = true;
public void init() {
pt2 = new MyJPanel2();
jmb = new JMenuBar();
jm1 = new JMenu("游戏(G)");// JMenu 不能设置快捷键
jm1.setMnemonic('G'); // 设置热键
jmb.add(jm1);
jm1_jmi1 = new JMenuItem("开始(N)");
jm1_jmi1.addActionListener(this);
jm1_jmi1.setMnemonic('N'); // 设置热键
// ????????
jm1_jmi1.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_N,
java.awt.event.InputEvent.CTRL_MASK));// 完整路径为
// java.awt.event.InputEvent
jm1.add(jm1_jmi1);
jm1.addSeparator(); // 添加分隔线
jm1_jmi3 = new JMenuItem("初级");
jm1.add(jm1_jmi3);
jm1_jmi3.addActionListener(this);
jm1_jmi4 = new JMenuItem("中级");
jm1.add(jm1_jmi4);
jm1_jmi4.addActionListener(this);
jm1_jmi5 = new JMenuItem("高级");
jm1.add(jm1_jmi5);
jm1_jmi5.addActionListener(this);
jm1.addSeparator(); // 添加分隔线
// jm1_jmi6 = new JMenuItem("自定义");
//jm1.add(jm1_jmi6);
// jm1.addSeparator(); // 添加分隔线
jm1_jmi7 = new JMenuItem("拼图英雄榜");
//jm1.add(jm1_jmi7);
// jm1.addSeparator(); // 添加分隔线
jm1_jmi8 = new JMenuItem("退出");
jm1_jmi8.addActionListener(this);
jm1.add(jm1_jmi8);
jm2 = new JMenu("帮助");
jmb.add(jm2);
// -----------------------
jtb = new JToolBar();
jtb_jb1 = new JButton("开始游戏");// 建立图标按钮
jtb_jb1.setHorizontalTextPosition(AbstractButton.CENTER);// 设置文字的横向位置
jtb_jb1.setVerticalTextPosition(AbstractButton.BOTTOM);// 设置文字的纵向位置;
jtb_jb1.setToolTipText("开始游戏");// 设置提示文字
jtb_jb1.setFocusPainted(false);// 设置不画焦点
jtb_jb1.setRequestFocusEnabled(false);// 设置不能设置焦点 使焦点不停留
jtb.add(jtb_jb1);
jtb_jb1.addActionListener(this);
jtb_jb2 = new JButton("显示图象");
jtb_jb2.setEnabled(false);
jtb.add(jtb_jb2);
jtb_jb2.addActionListener(this);
// -------------------------------------------
jtb_jb4 = new JButton("移动模式");
jtb.add(jtb_jb4);
jtb_jb4.setEnabled(false);
jtb_jb4.addActionListener(this);
jtb_jb3 = new JButton("跳换模式");
jtb.add(jtb_jb3);
jtb_jb3.setEnabled(true);
jtb_jb3.addActionListener(this);
// ------------------------------------
add(jtb, "North");
// -------------------
pt = new MyJPanel();
add(pt, "Center");
pt.init(3, "cj.jpg");
pt2.init(3,"cj.jpg");
// ------------------------
ImageIcon image = new ImageIcon("icon0.JPG"); //设置左上角图标
setIconImage(image.getImage());
setJMenuBar(jmb);
setTitle("拼图游戏");
setSize(460, 450);
setLocation(300, 100); // xian shi chuang kou weizhi
setResizable(false); // suo ding chuang kou
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setVisible(true);
}
public static void main(String[] args) {
// ------------------设置窗口模式
// JFrame.setDefaultLookAndFeelDecorated(true);
//
try {
UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());
// UIManager.setLookAndFeel(UIManager.getCrossPlatformLookAndFeelClassName());
} catch (Exception e) {
}
// -----------------------
new mainJFrame().init();
}
public void actionPerformed(ActionEvent e) {
if (e.getSource() == jtb_jb1 || e.getSource() == jm1_jmi1) {
jtb_jb2.setEnabled(true);
if (change) { // 移动状态
pt.bs = 0;
pt.jtf_bs.setText("0");
pt.running = true;
pt.move = true;
pt.jixu = true;
} else {// 跳转状态
pt2.bs2 = 0;
pt2.jtf_bs.setText("0");
pt2.running2 = true;
pt2.move2 = true;
pt2.jixu2 = true;
}
jtb_jb2.setEnabled(true);
if (!restart) {
restart = true;
jtb_jb1.setText("重新开始");
jm1_jmi1.setText("重新开始");
if (change) {
pt.repaint();
}
else {
pt2.repaint();
}
} else {
if (cj) {
if (change)
pt.init(3, "cj.jpg");
else
{pt2.remove(pt2.jp0);
pt2.init(3,"cj.jpg");
}
} else if (zj) {
if (change)
pt.init(4, "zj.jpg");
else
{pt2.remove(pt2.jp0);
pt2.init(4,"zj.jpg");}
} else if (gj) {
if (change)
pt.init(5, "bf.jpg");
else
{pt2.remove(pt2.jp0);
pt2.init(5,"bf.jpg");}
}
if (change)
pt.repaint();
else
pt2.repaint();
}
}
if (e.getSource() == jm1_jmi3) {//初级
if (change) {
pt.bs = 0;
pt.jtf_bs.setText("0");
// --------
pt.move = false;
pt.jixu = true;
pt.running = false;
} else {
pt2.bs2 = 0;
pt2.jtf_bs.setText("0");
pt2.running2 = false;
pt2.jixu2 = true;
pt2.move2 = false;
}
cj = true;
zj = false;
gj = false;
// ---------------
jtb_jb1.setText("开始游戏");
jm1_jmi1.setText("开始游戏");
// jtb_jb2.setEnabled(false);
restart = false;
if (change) {
pt.init(3, "cj.jpg");
pt.repaint();
} else {
pt2.remove(pt2.jp0);
pt2.init(3,"cj.jpg");
pt2.repaint();
}
}
if (e.getSource() == jm1_jmi4) {//中级
if (change) {
pt.bs = 0;
pt.jtf_bs.setText("0");
// --------
pt.move = false;
pt.jixu = true;
pt.running = false;
} else {
pt2.bs2 = 0;
pt2.jtf_bs.setText("0");
pt2.running2 = false;
pt2.jixu2 = true;
pt2.move2 = false;
}
cj = false;
zj = true;
gj = false;
// ---------------
jtb_jb1.setText("开始游戏");
jm1_jmi1.setText("开始游戏");
jtb_jb2.setEnabled(false);
// jtb_jb1.setEnabled(true);
restart = false;
if (change) {
pt.init(4, "zj.jpg");
pt.repaint();
} else {
pt2.remove(pt2.jp0);
pt2.init(4,"zj.jpg");
pt2.repaint();
pt2.running2 = false;
pt2.repaint();
}
}
if (e.getSource() == jm1_jmi5) {//高级
if (change) {
pt.bs = 0;
pt.jtf_bs.setText("0");
// --------
pt.move = false;
pt.jixu = true;
pt.running = false;
} else {
pt2.bs2 = 0;
pt2.jtf_bs.setText("0");
pt2.running2 = false;
pt2.jixu2 = true;
pt2.move2 = false;
}
cj = false;
zj = false;
gj = true;
// ---------------
jtb_jb1.setText("开始游戏");
jm1_jmi1.setText("开始游戏");
jtb_jb2.setEnabled(false);
// jtb_jb1.setEnabled(true);
restart = false;
if (change) {
pt.init(5, "bf.jpg");
pt.repaint();
} else {
pt2.remove(pt2.jp0);
pt2.init(5,"bf.jpg");
pt2.repaint();
}
}
if (e.getSource() == jtb_jb2 && (pt.jixu || pt2.jixu2)) {//继续游戏
if (!regame) {
if (change)
pt.running = false;
else
pt2.running2 = false;
regame = true;
if(change)
pt.repaint();// ?????????????????????????????????????????????
else
pt2.repaint();
jtb_jb2.setText("继续游戏");
jtb_jb1.setEnabled(false);
// jtb_jb1.setEnabled(true);
jm1_jmi3.setEnabled(false);
jm1_jmi4.setEnabled(false);
jm1_jmi5.setEnabled(false);
jm1_jmi1.setEnabled(false);
jtb_jb4.setEnabled(false);
jtb_jb3.setEnabled(false);
// -----------------------------
} else {
if (change)
pt.running = true;
else
pt2.running2 = true;
regame = false;
repaint();// ???????????????????????????????????
jtb_jb2.setText("显示图象");
jtb_jb1.setEnabled(true);
// ------------------------
jm1_jmi3.setEnabled(true);
jm1_jmi4.setEnabled(true);
jm1_jmi5.setEnabled(true);
jm1_jmi1.setEnabled(true);
if(change) jtb_jb3.setEnabled(true);
else jtb_jb4.setEnabled(true);
}
}
if (e.getSource() == jtb_jb3) { // 跳换
change = false;
remove(pt);
add(pt2, "Center");
// pt2.init(3);
pt2.running2 = false; // /////////////////////////////
pt2.repaint();
jtb_jb3.setEnabled(false);
jtb_jb4.setEnabled(true);
jtb_jb2.setEnabled(false);
jtb_jb2.setText("显示 图象");///??????/
}
if (e.getSource() == jtb_jb4) { // 移动
change = true;
remove(pt2);
add(pt, "Center");
pt.running = false;
pt.repaint();
// pt.init(3,"d:\\cj.jpg");
jtb_jb3.setEnabled(true);
jtb_jb4.setEnabled(false);
jtb_jb2.setEnabled(false);
}
if (e.getSource() == jm1_jmi8) {
System.exit(0);
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -