⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 customdialog.java

📁 eclipse下面实现的java扫雷游戏
💻 JAVA
字号:
/*
 * Created on May 1, 2005
 *
 * TODO create the custom dialog
 */
package view;

import java.awt.Font;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

import javax.swing.JButton;
import javax.swing.JDialog;

import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JTextField;

/**
 * @author mqqqvpppm
 * 
 * TODO create the custom dialog
 */
public class CustomDialog {

	/**
	 *  
	 */
	public CustomDialog(JFrame parent, int width, int height, int mineNumber) {
		super();
		ok = false;
		
		panel = new JPanel();
		dialog = new JDialog(parent, "custom", true);
		widthField = new JTextField(String.valueOf(width));
		heightField = new JTextField(String.valueOf(height));
		mineNumberField = new JTextField(String.valueOf(mineNumber));
			
		widthLabel = new JLabel("Width");
		heightLabel = new JLabel("Height");
		mineNumberLabel = new JLabel("Mine");
		okBtn = new JButton("ok");
		cancelBtn = new JButton("cancel");
		
		Font font = new Font("Monospaced", Font.PLAIN, 12);
		widthLabel.setFont(font);
		heightLabel.setFont(font);
		mineNumberLabel.setFont(font);
		okBtn.setFont(font);
		cancelBtn.setFont(font);

		widthLabel.setBounds(15, 30, 50, 20);
		heightLabel.setBounds(15, 60, 50, 20);
		mineNumberLabel.setBounds(15, 90, 50, 20);

		widthField.setBounds(60, 30, 50, 20);
		heightField.setBounds(60, 60, 50, 20);
		mineNumberField.setBounds(60, 90, 50, 20);

		okBtn.setBounds(120, 30, 70, 25);
		cancelBtn.setBounds(120, 85, 70, 25);

		okBtn.addActionListener(new ActionListener() {

			public void actionPerformed(ActionEvent e) {
				ok = true;
				dialog.setVisible(false);
			}

		});

		cancelBtn.addActionListener(new ActionListener() {

			public void actionPerformed(ActionEvent e) {
				dialog.setVisible(false);
			}

		});

		panel.setLayout(null);
		panel.add(widthLabel);
		panel.add(heightLabel);
		panel.add(mineNumberLabel);
		panel.add(widthField);
		panel.add(heightField);
		panel.add(mineNumberField);
		panel.add(okBtn);
		panel.add(cancelBtn);

		dialog.setResizable(false);
		dialog.setContentPane(panel);
		this.parent = parent;
	}

	public boolean show() {
		ok = false;
		dialog.setBounds(parent.getX() + 50, parent.getY() + 50, 215, 175);
		dialog.setVisible(true);
		parse();
		return ok;
	}
	
	public void setWidth(int width){
//		this.width = width;
		this.widthField.setText(String.valueOf(width));
	}
	
	public void setHeight(int height){
//		this.height = height;
		this.heightField.setText(String.valueOf(height));
	}

	public void setMineNumber(int mineNumber){
//		this.mineNumber = mineNumber;
		this.mineNumberField.setText(String.valueOf(mineNumber));
	}

	public int getWidth() {
		return width;
	}

	public int getHeight() {
		return height;
	}

	public int getMineNumber() {
		return mineNumber;
	}

	private void parse() {
		try {
			width = Integer.parseInt(widthField.getText());
			height = Integer.parseInt(heightField.getText());
			mineNumber = Integer.parseInt(mineNumberField.getText());
		} catch (NumberFormatException e) {
			width = 9;
			height = 9;
			mineNumber = 10;
			return;
		}

		if (width < 9) {
			width = 9;
			widthField.setText("9");
		} else if (width > 50) {
			width = 50;
			widthField.setText("50");
		}

		if (height < 1) {
			height = 1;
			heightField.setText("1");
		} else if (height > 30) {
			height = 30;
			heightField.setText("30");
		}

		if (mineNumber > height * width-9 || mineNumber < 1) {
			mineNumber = height * width / 7;
			mineNumberField.setText(String.valueOf(mineNumber));
		}

	}

	private JFrame parent;

	private JPanel panel;

	private JDialog dialog;

	//private JFormattedTextField widthField;
	private JTextField widthField;

	private JTextField heightField;

	private JTextField mineNumberField;

	private JLabel widthLabel;

	private JLabel heightLabel;

	private JLabel mineNumberLabel;

	private JButton okBtn;

	private JButton cancelBtn;

	private boolean ok;

	private int width;

	private int height;

	private int mineNumber;
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -