亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? customdialog.java

?? 用java實現的全真模擬windows下的掃雷程序。不過目前實現以button方式實現。改進可以考慮以位圖形式實現
?? JAVA
字號:
/*
 * CustomDialog.java 1.0 2003-06-25
 *
 * Copyleft (c) 2003 RatKing.
 */

package jmine;

import java.awt.*;
import java.awt.event.*;
import javax.swing.*;

/**
 * “自定義雷區”對話框
 *
 * @author <a href="ratking@ynet.com">RatKing</a>
 * @version 1.0
 */
public class CustomDialog extends JDialog {
    private final int DEFAULT_ROWS      = 9;
    private final int DEFAULT_COLUMNS   = 9;
    private final int DEFAULT_MINES     = 9;
    private final int MAX_ROWS          = 24;
    private final int MAX_COLUMNS       = 30;
    private final int MAX_MINES         = 667;
    private final int MIN_ROWS          = 9;
    private final int MIN_COLUMNS       = 9;
    private final int MIN_MINES         = 10;

    int rows    = DEFAULT_COLUMNS;
    int columns = DEFAULT_COLUMNS;
    int mines   = DEFAULT_MINES;

    JLabel rowsLabel    = new JLabel("高度(H):");
    JLabel columnsLabel = new JLabel("寬度(W):");
    JLabel minesLabel   = new JLabel("雷數(M):");

    JTextField rowsField = new JTextField(5);
    JTextField columnsField = new JTextField(5);
    JTextField minesField = new JTextField(5);

    JButton okButton = new JButton("確定(O)");
    JButton cancelButton = new JButton("取消(C)");

    public CustomDialog() {
        this((Frame) null);
    }

    public CustomDialog(Frame owner) {
        super(owner, "自定義雷區", true);
        init();
    }

    private void init() {
        rowsField.setText(Integer.toString(rows));
        columnsField.setText(Integer.toString(columns));
        minesField.setText(Integer.toString(mines));

        rowsField.addFocusListener(new FocusAdapter() {
            public void focusGained(FocusEvent e) {
                JTextField tf = (JTextField) e.getSource();
                tf.selectAll();
            }
        });
        columnsField.addFocusListener(new FocusAdapter() {
            public void focusGained(FocusEvent e) {
                JTextField tf = (JTextField) e.getSource();
                tf.selectAll();
            }
        });
        minesField.addFocusListener(new FocusAdapter() {
            public void focusGained(FocusEvent e) {
                JTextField tf = (JTextField) e.getSource();
                tf.selectAll();
            }
        });

        rowsLabel.setLabelFor(rowsField);
        columnsLabel.setLabelFor(columnsField);
        minesLabel.setLabelFor(minesField);

        rowsLabel.setDisplayedMnemonic(KeyEvent.VK_H);
        columnsLabel.setDisplayedMnemonic(KeyEvent.VK_W);
        minesLabel.setDisplayedMnemonic(KeyEvent.VK_M);

        JPanel p1 = new JPanel(new GridLayout(3, 2, 5, 5));
        JPanel p2 = new JPanel();
        p2.setLayout(new BoxLayout(p2, BoxLayout.Y_AXIS));

        okButton.setMnemonic(KeyEvent.VK_O);
        cancelButton.setMnemonic(KeyEvent.VK_C);
        okButton.addActionListener(new ActionListener() {
            public void actionPerformed(ActionEvent e) {
                measure();
                dispose();
            }
        });
        cancelButton.addActionListener(new ActionListener() {
            public void actionPerformed(ActionEvent e) {
                dispose();
            }
        });

        // 添加提示信息
        rowsLabel.setToolTipText("<html><font size=3>游戲區域中縱向方塊的數量。</font></html>");
        rowsField.setToolTipText("<html><font size=3>游戲區域中縱向方塊的數量。</font></html>");
        columnsLabel.setToolTipText("<html><font size=3>游戲區域中橫向方塊的數量。</font></html>");
        columnsField.setToolTipText("<html><font size=3>游戲區域中橫向方塊的數量。</font></html>");
        minesLabel.setToolTipText("<html><font size=3>游戲區域中地雷的數量。</font></html>");
        minesField.setToolTipText("<html><font size=3>游戲區域中地雷的數量。</font></html>");
        okButton.setToolTipText("<html><font size=3>關閉該對話框并保存所作的更改。</font></html>");
        cancelButton.setToolTipText("<html><font size=3>關閉該對話框,但不保存任何更改。</font></html>");

        // 設置字體
        Font font = JMine.defaultFont;
        rowsLabel.setFont(font);
        rowsField.setFont(font);
        columnsLabel.setFont(font);
        columnsField.setFont(font);
        minesLabel.setFont(font);
        minesField.setFont(font);
        okButton.setFont(font);
        cancelButton.setFont(font);

        p1.add(rowsLabel);
        p1.add(rowsField);
        p1.add(columnsLabel);
        p1.add(columnsField);
        p1.add(minesLabel);
        p1.add(minesField);
        p2.add(Box.createVerticalGlue());
        p2.add(okButton);
        p2.add(Box.createVerticalGlue());
        p2.add(cancelButton);
        p2.add(Box.createVerticalGlue());

        JPanel contentPane = (JPanel) getContentPane();
        BorderLayout borderLayout = (BorderLayout) contentPane.getLayout();
        borderLayout.setHgap(10);
        contentPane.setBorder(BorderFactory.createEmptyBorder(20, 10, 20, 10));
        contentPane.add(p1, BorderLayout.CENTER);
        contentPane.add(p2, BorderLayout.EAST);

        getRootPane().setDefaultButton(okButton);
        setDefaultCloseOperation(DISPOSE_ON_CLOSE);
        setResizable(false);

        pack();
        okButton.requestFocus();
    }

    public int getRows() {
        return rows;
    }

    public int getColumns() {
        return columns;
    }

    public int getMines() {
        return mines;
    }

    public void setRows(int rows) {
        this.rows = rows;
        rowsField.setText(Integer.toString(rows));
    }

    public void setColumns(int columns) {
        this.columns = columns;
        columnsField.setText(Integer.toString(columns));
    }

    public void setMines(int mines) {
        this.mines = mines;
        minesField.setText(Integer.toString(mines));
    }

    private void measure() {
        rows = getNumber(rowsField.getText());
        columns = getNumber(columnsField.getText());
        mines = getNumber(minesField.getText());

        if (rows < MIN_ROWS)
            rows = MIN_ROWS;
        if (rows > MAX_ROWS)
            rows = MAX_ROWS;
        if (columns < MIN_COLUMNS)
            columns = MIN_COLUMNS;
        if (columns > MAX_COLUMNS)
            columns = MAX_COLUMNS;
        if (mines < MIN_MINES)
            mines = MIN_MINES;
        if (mines > MAX_MINES)
            mines = MAX_MINES;

        int maxMines = (int) (rows * columns * 0.8);
        if (mines > maxMines)
            mines = maxMines;
    }

    /**
     * 將字符串轉換成整數。
     * 轉換前,首先除去字符串首尾的空格,并截去不是數字的后面的部分
     */
    private int getNumber(String str) {
        if (str == null)
            return 0;
        str = str.trim();

        int i;
        for (i = 0; i < str.length(); i++) {
            if (!Character.isDigit(str.charAt(i)))
                break;
        }
        str = str.substring(0, i);

        int n = 0;
        try {
            n = Integer.parseInt(str);
            // if (n < 0) n = -n;
        } catch  (NumberFormatException e) {
            // skip
        }

        return n;
    }
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
av欧美精品.com| 中文字幕欧美区| 在线观看免费成人| va亚洲va日韩不卡在线观看| 激情丁香综合五月| 日韩精品五月天| 亚洲福利一二三区| 一级日本不卡的影视| 亚洲三级免费电影| 中文字幕成人av| 国产精品色呦呦| 久久网站热最新地址| 国产日韩欧美综合一区| 精品粉嫩超白一线天av| 久久综合资源网| 亚洲欧洲精品成人久久奇米网| 国产性做久久久久久| 亚洲欧洲性图库| 亚洲国产欧美在线人成| 婷婷夜色潮精品综合在线| 日产国产欧美视频一区精品| 美国三级日本三级久久99| 国产福利精品一区| 色婷婷av一区二区三区软件 | 日韩美女视频一区| 亚洲成人黄色影院| 国产91综合网| 欧美性色综合网| 中文字幕乱码久久午夜不卡| 一二三四社区欧美黄| 国产成人午夜99999| 欧美怡红院视频| 欧美高清在线精品一区| 三级欧美在线一区| 91香蕉视频mp4| 久久综合九色综合97婷婷| 亚洲综合免费观看高清完整版| 久久99这里只有精品| 在线电影院国产精品| 欧美极品少妇xxxxⅹ高跟鞋| 青青草国产成人av片免费| 一本到不卡精品视频在线观看| 精品久久久三级丝袜| 丝瓜av网站精品一区二区| 色综合天天综合色综合av| 久久综合色鬼综合色| 韩国一区二区三区| 69久久夜色精品国产69蝌蚪网| 亚洲欧美成aⅴ人在线观看| 国产精品18久久久久久久网站| 欧美精品在线观看播放| 一区二区三区在线视频免费| 一本一本大道香蕉久在线精品| 亚洲国产精品99久久久久久久久 | 天堂午夜影视日韩欧美一区二区| www.99精品| 亚洲欧美偷拍卡通变态| 色吊一区二区三区| 婷婷六月综合亚洲| 日韩精品一区二区三区在线 | 国产麻豆午夜三级精品| 2020国产精品| 色综合中文字幕国产 | www.色综合.com| 国产欧美一区二区在线| 久久精品二区亚洲w码| 日本一区二区免费在线| 91香蕉视频在线| 久色婷婷小香蕉久久| 国产亚洲综合在线| 色播五月激情综合网| 天天操天天干天天综合网| 久久精品人人做人人爽人人| 成人小视频在线观看| 中文字幕成人av| 亚洲黄色免费网站| 成人爱爱电影网址| 一区二区不卡在线播放| 久久精品人人做人人爽97| 欧美亚洲高清一区| 91福利资源站| 91天堂素人约啪| 不卡av在线网| 91丨九色丨尤物| 国产伦精品一区二区三区免费 | 欧美韩日一区二区三区四区| 精品国产1区二区| 日韩精品一区二区三区老鸭窝| 91精品在线麻豆| wwwwww.欧美系列| av一区二区三区在线| 国产精品久久精品日日| 9人人澡人人爽人人精品| 亚洲丝袜另类动漫二区| 色婷婷av久久久久久久| 日本美女视频一区二区| 亚洲激情自拍偷拍| 久久久久久夜精品精品免费| 欧美日韩午夜精品| 91浏览器在线视频| 丁香一区二区三区| 国产成人精品影视| av在线不卡免费看| 欧美性受xxxx黑人xyx| 欧美日韩一区二区在线观看视频| 91污片在线观看| 在线观看三级视频欧美| 欧美写真视频网站| 日韩一区国产二区欧美三区| 精品欧美一区二区三区精品久久| 久久午夜羞羞影院免费观看| 国产精品乱码人人做人人爱| 亚洲一卡二卡三卡四卡| 日韩国产欧美三级| 久久不见久久见中文字幕免费| 国产精一品亚洲二区在线视频| 国产91精品一区二区麻豆网站| 成人免费视频一区| 欧美理论片在线| √…a在线天堂一区| 日韩高清一区二区| 国产91精品久久久久久久网曝门| 91丨国产丨九色丨pron| 91精品国产91热久久久做人人| 精品不卡在线视频| 视频一区视频二区中文| aa级大片欧美| 26uuu精品一区二区| 首页综合国产亚洲丝袜| 国产成人精品三级麻豆| 91精品国产一区二区三区香蕉| 中文字幕精品一区| 国产一区二区三区高清播放| 欧美久久久久免费| 亚洲大片免费看| 97久久久精品综合88久久| 国产清纯美女被跳蛋高潮一区二区久久w| 亚洲一区二区av电影| 91丨porny丨在线| 亚洲另类春色校园小说| 91小视频在线观看| 亚洲第一主播视频| 欧美伦理电影网| 午夜视频在线观看一区二区| 欧美日韩一本到| 午夜电影网一区| 精品日韩成人av| 国产馆精品极品| 国产精品丝袜在线| 在线一区二区三区四区| 亚洲免费av高清| 欧美日韩综合不卡| 精品无码三级在线观看视频| 精品国产91乱码一区二区三区| 九九**精品视频免费播放| 欧美成人伊人久久综合网| 国产在线国偷精品产拍免费yy| 欧美成人性战久久| 在线看国产一区二区| 韩国三级电影一区二区| 久久亚洲影视婷婷| 91蜜桃视频在线| 美女脱光内衣内裤视频久久影院| 日韩欧美一区二区三区在线| 成人免费视频app| 激情综合亚洲精品| 亚洲精品国产a| 国产三级欧美三级日产三级99 | 处破女av一区二区| 午夜影视日本亚洲欧洲精品| 中文字幕亚洲视频| 欧美v日韩v国产v| 色综合久久久久综合99| 国产一区二区精品久久99| 日韩理论片网站| 国产精品美女久久久久aⅴ| 欧美成人官网二区| 欧美三级日本三级少妇99| 国产成人精品www牛牛影视| 日日夜夜一区二区| 香蕉成人啪国产精品视频综合网| 亚洲天堂福利av| 亚洲国产日韩精品| 亚洲国产三级在线| 香蕉久久夜色精品国产使用方法| 亚洲男女一区二区三区| 国产午夜精品久久久久久免费视 | 亚洲成人综合网站| 午夜精彩视频在线观看不卡| 亚洲精品国产第一综合99久久 | 国产精品亚洲成人| 激情图片小说一区| 成人国产视频在线观看| 成人性生交大片免费看中文| 国产一区二区三区香蕉| 国产综合一区二区| 91福利国产成人精品照片| 精品视频999| 精品久久久三级丝袜| 国产精品进线69影院|