【问题标题】:Swap JButton Icons On MouseClicks鼠标点击时交换按钮图标
【发布时间】: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");
            }
        }

    }

我尝试了一些不起作用的方法(这会移动图标,但图标也会保留在起始位置)。任何见解都会有所帮助。

【问题讨论】:

    标签: java swing jbutton


    【解决方案1】:

    那是因为你从不改变selectedButton的图标,试试这个:

    if(iconSelected && !but.equals(selectedButton)){ // move(swap) buttons
            Icon bIcon = but.getIcon();
            but.setIcon(selectedButton.getIcon());
            selectedButton.setIcon(bIcon);
            ...
    }
    

    【讨论】:

    • 是的,虽然我还有另一个问题,但这完全回答了这个问题!。谢谢。
    猜你喜欢
    • 2012-11-14
    • 1970-01-01
    • 1970-01-01
    • 2012-02-05
    • 2013-12-12
    • 1970-01-01
    • 2014-05-29
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多