【发布时间】:2016-01-05 23:34:36
【问题描述】:
我有一个JButton[][] 数组,用于存储网格上的每个按钮。
我想做的是:
1) 点击我想在网格上移动的jbutton(icon)。
2) 点击我希望之前选中的 jbutton(icon) 移动到的 jbutton。
private class BListener implements MouseListener {
@Override
public void mouseClicked(MouseEvent e) {
JButton but = ((JButton) e.getSource());
if(iconSelected && !but.equals(selectedButton)){ // move(swap) buttons
but.setIcon(selectedButton.getIcon());
selectedButton.setBorder(BorderFactory.createLineBorder(Color.black));
selectedButton.setName(null);
selectedButton=but;
iconSelected=false;
}else if(!iconSelected && but.getName()!=null){
iconSelected=true;
selectedButton=but;
but.setBorder(BorderFactory.createLineBorder(Color.YELLOW,3));
}else{
if(iconSelected){
System.out.println("Already Selected");
}else{
System.out.println("Not selected");
}
}
}
我尝试了一些不起作用的方法(这会移动图标,但图标也会保留在起始位置)。任何见解都会有所帮助。
【问题讨论】: