繁体   English   中英

如何在秋千中创建翻转按钮

[英]How to create a rollover button in swing

我有两个按钮

JButton playB = new JButton(new ImageIcon("res/playA.png"));
playB.setBorder(BorderFactory.createEmptyBorder());
playB.setContentAreaFilled(false);
JButton playA = new JButton(new ImageIcon("res/playA.png"));
playA.setBorder(BorderFactory.createEmptyBorder());
playA.setContentAreaFilled(false);

如何创建它,以便将鼠标移到按钮A上时切换到按钮B? 我能想到的就是使用鼠标侦听器,但我想知道是否还有更好的方法。

如何创建它,以便将鼠标移到按钮A上时切换到按钮B? 我能想到的就是使用鼠标侦听器,但我想知道是否还有更好的方法。

注意:setRolloverIcon方法不能用于此目的。

例如

JButton.getModel().addChangeListener(new ChangeListener() {
    @Override
    public void stateChanged(ChangeEvent e) {
        ButtonModel model = (ButtonModel) e.getSource();
        if (model.isRollover()) {
            //doSomething
        } else if (model.isPressed()) {
           //doSomething
        }  // etc
    }
});

编辑

再回来

如何创建它,以便将鼠标移到按钮A上时切换到按钮B? 我能想到的就是使用鼠标侦听器,但我想知道是否还有更好的方法。

  • 结论是,第一个JButton (button A)不是,永远不会在MouseKeyEvent的用户端使用,因为这两个事件都将(立即)转换为roll_over

  • 那么只有一种方法,可以从KeyBinding s中以编程方式调用JButton.doClick() ,但是仍然存在问题,何时,如何以及为什么原因……使简单的事情变得复杂

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM