java掃雷代碼問題分析,Java掃雷畢業(yè)論文

Java掃雷程序左右鍵同時(shí)按下的問題

改成

站在用戶的角度思考問題,與客戶深入溝通,找到華亭網(wǎng)站設(shè)計(jì)與華亭網(wǎng)站推廣的解決方案,憑借多年的經(jīng)驗(yàn),讓設(shè)計(jì)與互聯(lián)網(wǎng)技術(shù)結(jié)合,創(chuàng)造個(gè)性化、用戶體驗(yàn)好的作品,建站類型包括:成都網(wǎng)站建設(shè)、成都網(wǎng)站設(shè)計(jì)、企業(yè)官網(wǎng)、英文網(wǎng)站、手機(jī)端網(wǎng)站、網(wǎng)站推廣、域名申請(qǐng)虛擬主機(jī)、企業(yè)郵箱。業(yè)務(wù)覆蓋華亭地區(qū)。

int onmask = e.BUTTON1_DOWN_MASK | e.BUTTON3_DOWN_MASK;

if ((e.getModifiersEx() onmask) == onmask) {

System.out.println("ok");

}

API文檔:

getModifiersEx

public int getModifiersEx()

返回此事件的擴(kuò)展修飾符掩碼。擴(kuò)展修飾符表示所有模式鍵的狀態(tài),例如 ALT、CTRL、META 和事件發(fā)生后那一刻的鼠標(biāo)按鈕

例如,如果用戶在按下 button 1 后又按下 button 2,然后以相同的順序釋放這兩個(gè)按鈕,則會(huì)生成以下事件序列:

MOUSE_PRESSED: BUTTON1_DOWN_MASK

MOUSE_PRESSED: BUTTON1_DOWN_MASK | BUTTON2_DOWN_MASK

MOUSE_RELEASED: BUTTON2_DOWN_MASK

MOUSE_CLICKED: BUTTON2_DOWN_MASK

MOUSE_RELEASED:

MOUSE_CLICKED:

建議不使用 == 來比較此方法的返回值,因?yàn)樵谝院髸?huì)增加新的修飾符。例如,檢查 SHIFT 和 BUTTON1 已經(jīng)按下而 CTRL 未按下的正確方法可以通過以下代碼來演示:

int onmask = SHIFT_DOWN_MASK | BUTTON1_DOWN_MASK;

int offmask = CTRL_DOWN_MASK;

if (event.getModifiersEx() (onmask | offmask) == onmask) {

...

}

即使添加了新的修飾符,上述代碼仍然有效。

從以下版本開始:

1.4

JAVA掃雷游戲問題

能得到當(dāng)前 JLabel 的 x, y 值計(jì)算出來。clickedLabel.getBounds() 或 mouseClickedEvent.getPoint() 。

理論上,所有格子都是相同的正方形,所以只需要知道第一個(gè)格子的 x,y 應(yīng)該能知道任意一個(gè) (row,col) 的格子的 x, y,而當(dāng)我們知道擊中的格子的 x, y 時(shí)就應(yīng)該能反過來計(jì)算出它是第幾行第幾列。這其中是單一映射關(guān)系。

幫忙下java 掃雷常量代碼 提示 could not find the main class constants will exit 還拋出數(shù)組越界異常

for(int i=0;iTIME.length;i++)

{

FACE [i] = new ImageIcon("./img/di.gif");;//圖 時(shí)間

}

改:

for(int i=0;iTIME.length;i++)

{

TIME[i] = new ImageIcon("./img/di.gif");;//圖 時(shí)間

}

COPY的時(shí)候不認(rèn)真吧。

java的掃雷程序的一些問題

樓主你好

(問題1)

lz說改變字體的大小有問題 ?這個(gè)應(yīng)該不會(huì)這樣的 ? 改變字體(Font)是可以的

給lz一個(gè)例子:

import java.awt.*;

import javax.swing.*;

public class Test extends JFrame{

private JLabel[] num = new JLabel[100];

public Test(){

super("改變字體大小");

setLayout(new GridLayout(10,10));

for (int i = 0; i num.length; i++) {

num[i] = new JLabel("" + (i+1));

num[i].setFont(new Font("宋體", Font.PLAIN, 10));

//這里如果不設(shè)置字體大小? 那么數(shù)字100就不能顯示

getContentPane().add(num[i]);

}

setLocation(200,200);

setSize(200,200);

setVisible(true);

setResizable(false);

setDefaultCloseOperation(3);

}

public static void main (String[] args) {

new Test();

}

}? ?

(問題2)

你使用的應(yīng)該是GridLayout這個(gè)布局管理器吧

那么在使用了java自帶的布局管理器后 ?大多數(shù)都是不能修改這個(gè)布局管理器下的組件的大小和位置

如果你非要自己定義組件的大小 ?那么就只能不使用布局管理器了(setLayout(null))

在不使用布局管理器的情況下可以自由設(shè)置組件的大小的位置 ?但是這樣很麻煩

希望能幫助你哈

JAVA 掃雷的一段代碼求解釋

int BombNum, BlockNum; // 當(dāng)前雷數(shù),當(dāng)前方塊數(shù)

int rightBomb, restBomb, restBlock; // 找到的地雷數(shù),剩余雷數(shù),剩余方塊數(shù)

JButton start = new JButton(" 開始 ");

JPanel MenuPamel = new JPanel(); //新建一個(gè)區(qū)域,看名字是放菜單.但是打錯(cuò)字了.

JPanel bombPanel = new JPanel();//新建一個(gè)區(qū)域,雷區(qū),由于雷是按鈕,這里面應(yīng)該都是按鈕(JButton).

Bomb[][] bombButton; 2維組數(shù),放地雷.

class Bomb extends JButton {

int num_x, num_y; // 第幾號(hào)方塊

int BombRoundCount; // 周圍雷數(shù)

boolean isBomb; // 是否為雷

boolean isClicked; // 是否被點(diǎn)擊

int BombFlag; // 探雷標(biāo)記

boolean isRight; // 是否點(diǎn)擊右鍵

public Bomb(int x, int y) {

num_x = x; //雷的位置 x,不解釋

num_y = y; //雷的位置 y,不解釋.獲得是參數(shù)的值,所new Bomb的時(shí)候傳入雷的位置,套嵌2個(gè)for循環(huán).

BombFlag = 0; //是不是被插旗了

BombRoundCount = 9; //環(huán)繞數(shù)

isBomb = false; //是雷

isClicked = false; //被點(diǎn)

isRight = false; //是真的.( 以上都很好理解,直譯^_^)

}

}

/* 計(jì)算方塊周圍雷數(shù) */

public void CountRoundBomb() {

for (int i = 0; i (int) Math.sqrt(BlockNum); i++) { //開方 障礙數(shù)

for (int j = 0; j (int) Math.sqrt(BlockNum); j++) { //同上,我判斷,設(shè)計(jì)的雷區(qū)是正方形,

//這里是找完所有的坐標(biāo).

int count = 0;

// 當(dāng)需要檢測(cè)的單元格本身無地雷的情況下,統(tǒng)計(jì)周圍的地雷個(gè)數(shù)

if (bombButton[i][j].isBomb != true) { //如果不是雷

for (int x = i - 1; x i + 2; x++) { //從左邊1個(gè),到右邊1個(gè),一共3個(gè)

for (int y = j - 1; y j + 2; y++) { //我不知道,java y坐標(biāo)是上還是下,總之

//鄰近的上中下.(這里會(huì)多找一個(gè)自己)

if ( (x = 0) (y = 0)

(x ( (int) Math.sqrt(BlockNum)))

(y ( (int) Math.sqrt(BlockNum)))) { //因邊前面 x=i-1,所以排除超出邊界

//的情況

if (bombButton[x][y].isBomb == true) { //如果是雷;

count++; //加一個(gè)

}

}

}

}

bombButton[i][j].BombRoundCount = count; //設(shè)置該Bomb環(huán)繞數(shù)的值

}

}

}

}

總之就是,建個(gè)一個(gè)Bomb類. 別外有一個(gè)方法統(tǒng)計(jì)那些不是雷的地方,的周圍有幾顆雷,到時(shí)候點(diǎn)開,顯示出來.

當(dāng)前題目:java掃雷代碼問題分析,Java掃雷畢業(yè)論文
網(wǎng)站路徑:http://www.muchs.cn/article0/hcppoo.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供定制網(wǎng)站、網(wǎng)站維護(hù)、網(wǎng)站收錄網(wǎng)站設(shè)計(jì)公司、小程序開發(fā)、ChatGPT

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)

網(wǎng)站建設(shè)網(wǎng)站維護(hù)公司