📄 game.java
字号:
forthTextField.setEditable(false);
startButton.setEnabled(true);
easyRadio.setEnabled(true);
normalRadio.setEnabled(true);
againButton.setEnabled(false);
clearButton.setEnabled(false);
times = 10;
historys = "<html>无历史可查!";
historyLabel.setToolTipText(historys);
tipLabel.setText("欢迎再来一局");
} else if (e.getSource() == keyButton) {
firstTextField.setBackground(Color.white);
secondTextField.setBackground(Color.white);
thirdTextField.setBackground(Color.white);
forthTextField.setBackground(Color.white);
firstTextField.setText(Integer.toString(iArray[0]));
secondTextField.setText(Integer.toString(iArray[1]));
thirdTextField.setText(Integer.toString(iArray[2]));
forthTextField.setText(Integer.toString(iArray[3]));
tipLabel.setText("I'm sorry to say that you lost!");
if (!isNormal) {
firstTextField.setBackground(Color.green);
secondTextField.setBackground(Color.green);
thirdTextField.setBackground(Color.green);
forthTextField.setBackground(Color.green);
}
keyButton.setNextFocusableComponent(againButton);
numTextField.setText("4");
napTextField.setText("4");
okButton.setEnabled(false);
clearButton.setEnabled(false);
keyButton.setEnabled(false);
times = 10;
} else if (e.getSource() == exitButton) {
if (JOptionPane.showConfirmDialog(null, "确定退出游戏?", "WARNING",
JOptionPane.YES_NO_OPTION)
== JOptionPane.YES_OPTION)
System.exit(0);
} else {
if(times==10)
historys = "<html>查看历史:";
num = 0;
nap = 0;
if (Integer.parseInt(firstTextField.getText().trim()) == iArray[0]) {
if (!isNormal)
firstTextField.setBackground(Color.green);
nap++;
}
if (Integer.parseInt(secondTextField.getText().trim()) == iArray[1]) {
if (!isNormal)
secondTextField.setBackground(Color.green);
nap++;
}
if (Integer.parseInt(thirdTextField.getText().trim()) == iArray[2]) {
if (!isNormal)
thirdTextField.setBackground(Color.green);
nap++;
}
if (Integer.parseInt(forthTextField.getText().trim()) == iArray[3]) {
if (!isNormal)
forthTextField.setBackground(Color.green);
nap++;
}
napTextField.setText(Integer.toString(nap));
for (int i = 0; i < 4; i++) {
if (iArray[i] == Integer.parseInt(firstTextField.getText()
.trim())
|| Integer.parseInt
(secondTextField.getText().trim()) == iArray[i]
|| Integer.parseInt(thirdTextField.getText().trim()) == iArray[i]
|| Integer.parseInt(forthTextField.getText().trim()) == iArray[i])
num++;
}
historys = historys.concat("<hr color=red><font color=red size=2>第"
+ (11-times)
+ "次:<br> NO.1: "
+ Integer.parseInt(firstTextField.getText().trim())
+ "</font> "
+ "<font color=green size=2>NO.2: "
+ Integer.parseInt(secondTextField.getText().trim())
+ "</font> "
+ "<font color=blue size=2>NO.3: "
+ Integer.parseInt(thirdTextField.getText().trim())
+ "</font> "
+ "<font color=pink size=2>NO.4: "
+ Integer.parseInt(forthTextField.getText().trim())
+ "<hr color=red>"
+ " 数字正确数:"
+ num
+ " "
+ " 数位正确数:" + nap);
historyLabel.setToolTipText(historys);
numTextField.setText(Integer.toString(num));
times--;
if (nap == 4) {
if(times>1)
tipLabel.setText("<html><font color=green>You Win!</font>");
else
tipLabel
.setText("<html><font color=green>恭喜您,海底捞月!</font>");
clearButton.setEnabled(false);
} else if (times == 0 && nap != 4) {
okButton.setEnabled(false);
tipLabel.setText("<html><font color=red>You Lost!</font>");
} else
tipLabel.setText("您还有" + times + "次机会");
okButton.setEnabled(false);
}
} catch (Exception ex) {
} finally {
//continue;
}
}
public void windowClosing(WindowEvent e) {
System.exit(0);
}
public void windowOpened(WindowEvent e) {
transferFocus();
}
public void windowIconified(WindowEvent e) {
}
public void windowDeiconified(WindowEvent e) {
}
public void windowClosed(WindowEvent e) {
}
public void windowActivated(WindowEvent e) {
}
public void windowDeactivated(WindowEvent e) {
}
public void keyPressed(KeyEvent e) {
if (firstTextField.getText().equals("")
|| secondTextField.getText().equals("")
|| thirdTextField.getText().equals("")
|| forthTextField.getText().equals(""))
okButton.setEnabled(false);
int key = e.getKeyCode();
switch (key) {
case KeyEvent.VK_0:
break;
case KeyEvent.VK_1:
break;
case KeyEvent.VK_2:
break;
case KeyEvent.VK_3:
break;
case KeyEvent.VK_4:
break;
case KeyEvent.VK_5:
break;
case KeyEvent.VK_6:
break;
case KeyEvent.VK_7:
break;
case KeyEvent.VK_8:
break;
case KeyEvent.VK_9:
break;
//小键盘输入数字
case KeyEvent.VK_NUMPAD0:
break;
case KeyEvent.VK_NUMPAD1:
break;
case KeyEvent.VK_NUMPAD2:
break;
case KeyEvent.VK_NUMPAD3:
break;
case KeyEvent.VK_NUMPAD4:
break;
case KeyEvent.VK_NUMPAD5:
break;
case KeyEvent.VK_NUMPAD6:
break;
case KeyEvent.VK_NUMPAD7:
break;
case KeyEvent.VK_NUMPAD8:
break;
case KeyEvent.VK_NUMPAD9:
break;
case KeyEvent.VK_BACK_SPACE: {
okButton.setEnabled(false);
break;
}
case KeyEvent.VK_DELETE:
break;
case KeyEvent.VK_DOWN:
break;
case KeyEvent.VK_UP:
break;
case KeyEvent.VK_LEFT:
break;
case KeyEvent.VK_RIGHT:
break;
case KeyEvent.VK_TAB:
break;
case KeyEvent.VK_ALT:
break;
case KeyEvent.VK_CONTROL:
break;
case KeyEvent.VK_SHIFT:
break;
case KeyEvent.VK_SPACE:
break;
default: {
JOptionPane.showMessageDialog(null, "您输入的数不合法" + "\n"
+ "请重新输入(1-9)!","WARNING", JOptionPane.WARNING_MESSAGE);
if (e.getSource() == firstTextField)
firstTextField.setText("");
else if (e.getSource() == secondTextField)
secondTextField.setText("");
else if (e.getSource() == thirdTextField)
thirdTextField.setText("");
else
forthTextField.setText("");
}
}
}
@SuppressWarnings("deprecation")
public void keyReleased(KeyEvent e) {
if (!firstTextField.getText().equals("")
&& !secondTextField.getText().equals("")
&& !thirdTextField.getText().equals("")
&& !forthTextField.getText().equals(""))
okButton.setEnabled(true);
if (firstTextField.getText().equals("")
&& secondTextField.getText().equals("")
&& thirdTextField.getText().equals("")
&& forthTextField.getText().equals(""))
clearButton.setEnabled(false);
else
clearButton.setEnabled(true);
if (times < 10 && !isNormal) {
if (firstTextField.getBackground() == Color.green
&& Integer.parseInt(firstTextField.getText().trim()) != iArray[0])
firstTextField.setBackground(Color.red);
else
if(Integer.parseInt(firstTextField.getText().trim()) == iArray[0]&&firstTextField.getBackground() == Color.red)
firstTextField.setBackground(Color.green);
if (secondTextField.getBackground() == Color.green
&& Integer.parseInt(secondTextField.getText().trim()) != iArray[1])
secondTextField.setBackground(Color.red);
else
if(Integer.parseInt(secondTextField.getText().trim()) == iArray[1]&&secondTextField.getBackground() == Color.red)
secondTextField.setBackground(Color.green);
if (thirdTextField.getBackground() == Color.green
&& Integer.parseInt(thirdTextField.getText().trim()) != iArray[2])
thirdTextField.setBackground(Color.red);
else
if(Integer.parseInt(thirdTextField.getText().trim()) == iArray[2]&&thirdTextField.getBackground() == Color.red)
thirdTextField.setBackground(Color.green);
if (forthTextField.getBackground() == Color.green
&& Integer.parseInt(forthTextField.getText().trim()) != iArray[3])
forthTextField.setBackground(Color.red);
else
if(Integer.parseInt(forthTextField.getText().trim()) == iArray[3]&&forthTextField.getBackground() == Color.red)
forthTextField.setBackground(Color.green);
}
if(e.getSource()==firstTextField)
firstTextField.transferFocus();
else if(e.getSource()==secondTextField)
secondTextField.transferFocus();
else if(e.getSource()==thirdTextField)
thirdTextField.transferFocus();
else
forthTextField.setNextFocusableComponent(okButton);
}
public void keyTyped(KeyEvent e) {
}
public static void main(String[] args) {
@SuppressWarnings("unused")
Game game = new Game("Gilyou");
}
private JFrame mainFrame;
private JButton startButton;
private JButton clearButton;
private JButton againButton;
private JButton okButton;
private JButton keyButton;
private JButton exitButton;
private JLabel firstLabel;
private JLabel secondLabel;
private JLabel thirdLabel;
private JLabel forthLabel;
private JLabel tipLabel;
private JLabel numLabel;
private JLabel napLabel;
private JLabel copyRight;
private JTextField firstTextField;
private JTextField secondTextField;
private JTextField thirdTextField;
private JTextField forthTextField;
private JTextField numTextField;
private JTextField napTextField;
private JRadioButton normalRadio;
private JRadioButton easyRadio;
private ButtonGroup levelRadio;
private int iArray[] = new int[4];
private int num = 0;
private int nap = 0;
private int times = 10;
private boolean isNormal;
private JLabel historyLabel;
private String historys = new String("<html><font color=blue>查看历史:<br></font>");
static Random rand = new Random(10000);
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -