如何用Java遍历panel里的控件,程序如下:
//首先用循环生成二维的button数组for(introw=0;row<5;row++){for(intcol=0;col<5;col++){button=newJBu...
//首先用循环生成二维的button数组
for ( int row = 0 ; row < 5 ; row ++ ){
for ( int col = 0 ; col < 5 ; col ++){
button = new JButton();
button.setName(row + "" + col);
button.setIcon(new ImageIcon(stochasticOrder[row][col]));
centerPanel.add(button);
}
}
程序在运行的过程中,button上的图片会发生改变
请问我怎样才按顺序的得到button上图片的名称的数组呢?
其实我做的就是一个拼图游戏,button的位置是不改变的,
每次移动后,button上的图片会改变。我需要在每次移动后获取
button上图片的名称的数组,用于比较是否完成拼图;
如果是C#的话有类似以下的方法:
foreach(Control c in panel.Controls)
{
if(c is TextBox)
{
string text=(c as TextBox).Text;
list.Add(text);
}
}
请问Java有类似的方法吗?
希望给出代码 展开
for ( int row = 0 ; row < 5 ; row ++ ){
for ( int col = 0 ; col < 5 ; col ++){
button = new JButton();
button.setName(row + "" + col);
button.setIcon(new ImageIcon(stochasticOrder[row][col]));
centerPanel.add(button);
}
}
程序在运行的过程中,button上的图片会发生改变
请问我怎样才按顺序的得到button上图片的名称的数组呢?
其实我做的就是一个拼图游戏,button的位置是不改变的,
每次移动后,button上的图片会改变。我需要在每次移动后获取
button上图片的名称的数组,用于比较是否完成拼图;
如果是C#的话有类似以下的方法:
foreach(Control c in panel.Controls)
{
if(c is TextBox)
{
string text=(c as TextBox).Text;
list.Add(text);
}
}
请问Java有类似的方法吗?
希望给出代码 展开
展开全部
JPanel panel = new JPanel();
int count = panel.getComponentCount();
for (int i = 0; i < count; i++) {
Object obj = panel.getComponent(i);
if (obj instanceof JButton) {
JButton button = (JButton) obj;
}
}
这样可以得到面板上的所有组件。
与你给出的C#代码接近。
int count = panel.getComponentCount();
for (int i = 0; i < count; i++) {
Object obj = panel.getComponent(i);
if (obj instanceof JButton) {
JButton button = (JButton) obj;
}
}
这样可以得到面板上的所有组件。
与你给出的C#代码接近。
本回答被提问者和网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
二楼的方法就是正确的。
另外还有一个思路:不移动图片,而是移动button的位置,使用GridPanel,每次点击后调换点击块和empty块的位置就可以了。
另外还有一个思路:不移动图片,而是移动button的位置,使用GridPanel,每次点击后调换点击块和empty块的位置就可以了。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
还有一个思路,就是将button的引用放到一个数组(或者二维数组)里,维护起来比较方便
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询