第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

如何在執(zhí)行操作后移動按鈕?

如何在執(zhí)行操作后移動按鈕?

慕虎7371278 2024-01-05 15:09:25
我正在開發(fā)一個使用 GridLayout 的程序。當我嘗試在執(zhí)行操作后將按鈕移動到另一個位置時遇到問題?;旧?,我在面板中有一個按鈕大小的空白區(qū)域。我想將點擊的按鈕移動到這個空白區(qū)域,相反,空白區(qū)域?qū)⑷〈@個按鈕。我正在使用數(shù)組來獲取看起來像框架的模型。所以我知道數(shù)組中的空白空間在哪里(這是 JButton 數(shù)組中的空值),并且我試圖使該按鈕占據(jù)數(shù)組中空白空間的位置,反之亦然。但這并沒有真正起作用。任何幫助將不勝感激。private void setGame(int nbLines, int nbRows, int emptyX, int emptyY) {    pane.removeAll();    for (int i = 0; i < model.length; i++) {        for (int j = 0; j < model[i].length; j++) {            if (!(j == emptyY && emptyX == i)) {                button = new JButton("A");                model[i][j] = button;                pane.add(model[i][j]);                model[i][j].addActionListener(this);            }        }    }    frame.add(pane);    frame.setVisible(true);}public void actionPerformed(ActionEvent e) {    for (int i = 0; i < model.length; i++) {        for (int j = 0; j < model[i].length; j++) {            if (e.getSource() == model[i][j]) {                System.out.println("Cordonnées de i : " + i + "Cordonnées de j : " + j);                model[i][j] = null;                setGame(nbLignes, nbCol, i, j);            }        }    }}
查看完整描述

1 回答

?
米琪卡哇伊

TA貢獻1998條經(jīng)驗 獲得超6個贊

基本上,我在面板中有一個按鈕大小的空白區(qū)域。

你不能有一個空的空間。您需要向面板添加一個實際的組件來填充 GridLayout 中的空間。

所以我建議你可以這樣做:

  1. 將所有按鈕添加到 GridLayout

  2. 生成一個隨機數(shù)來確定哪個單元格應該為空。將此值保存為“空單元格”。然后使用Container.remove(...)刪除該單元格中的按鈕。然后,您使用該Container.add(component, index)方法添加一個不帶文本的 JLabel 來填充空單元格。

  3. 然后,當您單擊按鈕時,您將使用該Container.getCompnent(...)方法迭代面板中的所有組件,直到找到被單擊按鈕的索引。

  4. 現(xiàn)在您有兩個索引:空單元格和單擊的單元格。然后使用remove(...) 和add(...) 方法來交換這兩個組件。

  5. 交換完成后,您將“空索引”更新為“單擊索引”的值。


查看完整回答
反對 回復 2024-01-05
  • 1 回答
  • 0 關注
  • 126 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網(wǎng)微信公眾號