Java 从JPanel中删除某些名称的JButton
我有一个名为TileLayer的JPanel,在这个面板上,我使用一个循环来创建一个JButton网格,其名称设置为坐标,如:X,Y。我需要删除循环中的一些按钮。我设置了一个侦听器,当按下一个键时,它将删除一行。我试图使用.remove();方法。但我似乎找不到允许我删除名为1,2或1,3或1,3等按钮的语法。这样做的正确语法是什么 下面是我认为循环的样子:cullX是在代码的前面确定的,确切地说是48。xCord和yCord也已经事先知道了。但是很明显,我使用的语法并不正确,这就是我需要弄清楚的Java 从JPanel中删除某些名称的JButton,java,Java,我有一个名为TileLayer的JPanel,在这个面板上,我使用一个循环来创建一个JButton网格,其名称设置为坐标,如:X,Y。我需要删除循环中的一些按钮。我设置了一个侦听器,当按下一个键时,它将删除一行。我试图使用.remove();方法。但我似乎找不到允许我删除名为1,2或1,3或1,3等按钮的语法。这样做的正确语法是什么 下面是我认为循环的样子:cullX是在代码的前面确定的,确切地说是48。xCord和yCord也已经事先知道了。但是很明显,我使用的语法并不正确,这就是我需要弄清楚
while (buttonsRemoved <= cullX) {
tileLayer.remove(xCord + "," + yCord);
buttonsRemoved++;
xCord++;
}
while(按钮)被移除
获取tileLayer
中的组件列表
遍历列表
对于每个组件,检查它是否为JButton
如果是,请检查其文本是否为您要查找的文本
如果是,请将其从tillelayer
实现上述算法的代码:
java.awt.Component[]components=tileLayer.getComponents();
for(java.awt.Component:components){
if(javax.swing.JButton的组件实例){
javax.swing.JButton按钮=(javax.swing.JButton)组件;
String text=button.getText();
if(text.equals(xCord+“,”+yCord){
瓷砖层。移除(组件);
}
}
}
我建议您使用JButton
引用维护一个列表。您可以在将JButton
添加到UI时创建此列表。然后您可以使用此列表中的引用将其从UI中删除。请显示您尝试过的代码。还可以告诉我们您遇到了什么错误或在运行时发生了什么你的代码。我已经更新了我的问题,以便更清楚地了解我要实现的目标。你需要获取要删除的JButton的引用。你可以抓取子项并检查文本,或者你可以保留一个地图,以便按文本查找JButton。你需要将JButton
引用传递到tileLayer.remove()
,而不是字符串。或者,维护一个JButton引用列表,这样就不必搜索。