📄 optionframe.java
字号:
package com.lovo.pig.view;
/**
* 游戏设置界面
*/
import java.awt.Color;
import java.awt.Font;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
import javax.swing.ButtonGroup;
import javax.swing.ImageIcon;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.JRadioButton;
import javax.swing.JTextField;
import com.lovo.pig.control.SettingCtrl;
import com.lovo.pig.util.Images;
public class OptionFrame extends JFrame {
private static final long serialVersionUID = -6493861286969478831L;
Images images;
SettingCtrl setting ;
JLabel lblBackImg = new JLabel();
JPanel jplCtrlSetting = new JPanel();
JLabel lblFire = new JLabel("fire");
JLabel lblUp = new JLabel("up");
JLabel lblDown = new JLabel("down");
JLabel lblLevel = new JLabel("level");
JTextField txtFire = new JTextField(10);
JTextField txtUp = new JTextField(10);
JTextField txtDown = new JTextField(10);
ButtonGroup btnGroup = new ButtonGroup();
JRadioButton rbtnEasy = new JRadioButton("easy");
JRadioButton rbtnNormal = new JRadioButton("normal");
JRadioButton rbtnHard = new JRadioButton("hard");
JButton btnBack = new JButton("<<Save&Back");
JButton btnStart = new JButton("Save&Start>>");
public OptionFrame() {
this.setSize(720,570);
this.setTitle("Options");
this.setResizable(false);
this.setLocationRelativeTo(null);
this.setLayout(null);
//窗口关闭时返回菜单窗口
this.addWindowListener(new WindowAdapter(){
public void windowClosing(WindowEvent e) {
OptionFrame.this.dispose();
new MenuFrame();
}
});
images = Images.getImages();
setting = SettingCtrl.getSettingCtrl();
lblBackImg.setIcon(new ImageIcon(images.getImgOptionBk()));
lblBackImg.setBounds(0,0,426,570);
this.getContentPane().add(lblBackImg);
jplCtrlSetting.setBounds(426, 0, 294, 570);
jplCtrlSetting.setBackground(Color.BLACK);
jplCtrlSetting.setLayout(null);
lblFire.setFont(new Font("Monospaced", Font.PLAIN, 40));
lblUp.setFont(new Font("Monospaced", Font.PLAIN, 40));
lblDown.setFont(new Font("Monospaced", Font.PLAIN, 40));
lblLevel.setFont(new Font("Monospaced", Font.PLAIN, 40));
lblFire.setBounds(0,100,80,40);
lblUp.setBounds(0,200,80,40);
lblDown.setBounds(0,300,80,40);
lblLevel.setBounds(0, 400, 100, 40);
txtFire.setBounds(100,110,80,20);
txtUp.setBounds(100,210,80,20);
txtDown.setBounds(100,310,80,20);
btnBack.setBounds(150,500,120,20);
btnBack.addActionListener(new ActionListener() {
public void actionPerformed(final ActionEvent e) {
save();
OptionFrame.this.dispose();
new MenuFrame();
}
});
btnBack.setMnemonic('b');
btnStart.setBounds(0,500,120,20);
btnStart.setMnemonic('s');
btnStart.addActionListener(new ActionListener() {
public void actionPerformed(final ActionEvent e) {
save();
OptionFrame.this.dispose();
new MainFrame();
}
});
String fireTips = setting.getFireKey();
if(fireTips.equals(" ")){
fireTips = " ";
}else{
fireTips = ""+setting.getFireKey().charAt(0);
}
txtFire.setText(fireTips);
txtUp.setText(""+setting.getUpKey().charAt(0));
txtDown.setText(""+setting.getDownKey().charAt(0));
rbtnEasy.setBounds(100,354,80,20);
rbtnNormal.setBounds(100,400,90,20);
rbtnHard.setBounds(100,443,80,20);
btnGroup.add(rbtnEasy);
btnGroup.add(rbtnNormal);
btnGroup.add(rbtnHard);
rbtnEasy.setOpaque(false);
rbtnNormal.setOpaque(false);
rbtnHard.setOpaque(false);
rbtnEasy.setFont(new Font("Monospaced", Font.PLAIN, 20));
rbtnNormal.setFont(new Font("Monospaced", Font.PLAIN, 20));
rbtnHard.setFont(new Font("Monospaced", Font.PLAIN, 20));
if(setting.getLevel() == 1){
rbtnEasy.setSelected(true);
}else if(setting.getLevel() == 2){
rbtnNormal.setSelected(true);
}else if(setting.getLevel() == 3){
rbtnHard.setSelected(true);
}
jplCtrlSetting.add(lblFire);
jplCtrlSetting.add(txtFire);
jplCtrlSetting.add(lblUp);
jplCtrlSetting.add(txtUp);
jplCtrlSetting.add(lblDown);
jplCtrlSetting.add(txtDown);
jplCtrlSetting.add(btnBack);
jplCtrlSetting.add(btnStart);
jplCtrlSetting.add(lblLevel);
jplCtrlSetting.add(rbtnEasy);
jplCtrlSetting.add(rbtnNormal);
jplCtrlSetting.add(rbtnHard);
this.getContentPane().add(jplCtrlSetting);
this.setVisible(true);
}
/**
* @param args
*/
public static void main(String[] args) {
new OptionFrame();
}
private void save(){
//快捷键不能相同
if(txtFire.getText().equals("")|| txtUp.getText().equals("")||txtDown.getText().equals("")){
JOptionPane.showMessageDialog(this, "Hot Key Could not be NULL","Invalid Values",JOptionPane.INFORMATION_MESSAGE);
}else if(txtFire.getText().charAt(0) == txtUp.getText().charAt(0)||
txtFire.getText().charAt(0) == txtDown.getText().charAt(0)||
txtUp.getText().charAt(0) == txtDown.getText().charAt(0)
){
JOptionPane.showMessageDialog(this,"Hot Key Could Not Have the Same Value ","Invalid Values",JOptionPane.INFORMATION_MESSAGE);
return;
}
if(!txtFire.getText().equals("")){
if(txtFire.getText().equals(" ")){//空格
setting.setFireKey(" ");
}else{
setting.setFireKey(txtFire.getText().trim());
}
}
if(!txtUp.getText().equals("")){
if(txtUp.getText().equals(" ")){//空格
setting.setFireKey(" ");
}else{
setting.setUpKey(txtUp.getText().trim());
}
}
if(!txtDown.getText().equals("")){
if(txtDown.getText().equals(" ")){//空格
setting.setFireKey(" ");
}else{
setting.setDownKey(txtDown.getText().trim());
}
}
if(rbtnEasy.isSelected()){
setting.setLevel(1);
}else if(rbtnNormal.isSelected()){
setting.setLevel(2);
}else if(rbtnHard.isSelected()){
setting.setLevel(3);
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -