当前位置: 首页 > 知识库问答 >
问题:

如何在执行动作后移动按钮?

陶寒
2023-03-14

我正在用GridLayout做一个程序。在执行操作后,我尝试将按钮移动到另一个位置时出现问题。基本上,我在面板上有一个按钮大小的空白区域。我想把点击的按钮移到这个空白处,反过来,这个空白处会取代这个按钮。我正在使用一个数组来获得一个看起来像框架的模型。所以我知道空空间在我的数组中的位置(在JButton数组中是一个空值),我试图让这个按钮在数组中取空空间的位置,并反过来。但它并没有真正起作用。

任何帮助将不胜感激。

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个答案

凌华奥
2023-03-14

基本上,我在面板上有一个按钮大小的空空间。

你不能有空的空间。您需要向面板添加一个实际组件,以填充GridLayout中的空间。

所以我建议你可以这样做:

  1. 将所有按钮添加到GridLayout
 类似资料:
  • 我有一个按钮和一个文本框。当我在textbox中放置一个值并单击此按钮时,将创建一个新按钮,该值填充在textbox中,但我希望当我再次单击Button1时,应该还有一个按钮,或者我们可以说如何移动上一个按钮的位置? 请帮我解决这个问题。提前谢了。

  • 问题内容: 我想知道是否有任何可用资源描述浏览器的光标如何执行Javascript。 我知道它会在页面加载时加载并执行标签,并且您可以将函数附加到各种窗口事件,但是事情变得模糊的是,例如,当我通过AJAX检索远程页面并将其内容放入div中时。 如果该远程页面必须加载脚本库(例如),则何时加载“ anotherscript.js”并执行其内容? 如果我在当前页面上包含“ anotherscript.

  • 我在火花流应用程序中从kafka读取数据并执行两个操作 将dstream插入hbase表A 更新另一个hbase表B 我想确保对于dstream中的每个rdd,插入hbase表A将在对hbase表B进行更新操作之前发生(每个rdd依次发生上述两个动作) 如何在火花流应用中实现这一点

  • 问题内容: ,问题是这样的:当客户端在移动浏览器上浏览并且页面在pagea.html上执行javascript函数,然后导航到pageb.html,然后按返回按钮返回到javascript函数pagea.html。客户端按返回按钮返回pagea.html时将无法运行。它将跳过javascript调用。 我已经尝试了上面链接中提到的解决方案,但似乎不适用于移动Safari。还有其他人遇到此错误吗?你

  • 我根据Android文档创建了以下DialogFragment: 公共类PayBillDialogFraank扩展DialogFraank{ 从另一个片段(列表片段)中,当单击列表中的一行时,应该打开DialogFraank,并且在按下DialogFraank的正按钮后,我希望能够删除ListFraank的选定行,并调用一个方法来执行与删除相关联的远程操作。我实现了ListFraank如下: 我不

  • 这可能很简单,但我不知道去哪里寻找答案。假设在前端和后端都使用了相同的操作,或者假设我需要在前端和后端的中使用不同的行为,我如何检查该操作是从后端还是从前端调用? 顺便说一下,我正在使用和TYPO3 6.1.0。