改成
站在用戶的角度思考問題,與客戶深入溝通,找到華亭網(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
能得到當(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)系。
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)真吧。
樓主你好
(問題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è)置組件的大小的位置 ?但是這樣很麻煩
希望能幫助你哈
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)