首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在JToggleButton上收听ChangeListener的滚转?

在JToggleButton上收听ChangeListener的滚转?
EN

Stack Overflow用户
提问于 2014-04-12 18:09:47
回答 2查看 641关注 0票数 1

请记住,Swing按钮的MouseListeners是一个很大的nono,我的JToggleButton如何能够监听滚动/鼠标切换事件?下面的代码没有打印出“展期”。

代码语言:javascript
复制
import java.awt.event.ItemEvent;
import java.awt.event.ItemListener;

import javax.swing.*;
import javax.swing.border.*;
import javax.swing.event.ChangeEvent;
import javax.swing.event.ChangeListener;

public class Test {

  public static void main(String[] args) {

  JPanel panel = new JPanel();
  final JToggleButton button = new JToggleButton();
  button.addChangeListener(new ChangeListener() {
    @Override
    public void stateChanged(ChangeEvent arg0) {
        ButtonModel mod = button.getModel();
        if (mod.isRollover()) {
            System.out.println("rollover"); //won't work, unless button is of type JButton
        }
    }
  });
  JFrame frame = new JFrame();
  frame.add(panel);
  panel.add(button);
  frame.setVisible(true);
  frame.setDefaultCloseOperation(frame.EXIT_ON_CLOSE);
  }
}
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-04-12 18:24:23

你的代码是正确的。但是,请记住,默认情况下不启用滚转。所以,你必须先这样做:

代码语言:javascript
复制
button.setRolloverEnabled(true);
票数 3
EN

Stack Overflow用户

发布于 2014-04-12 18:25:37

代码语言:javascript
复制
public void setRolloverEnabled(boolean b)
Sets the rolloverEnabled property, which must be true for rollover effects to occur. The default value for the rolloverEnabled property is false. Some look and feels might not implement rollover effects; they will ignore this property.

你应该打电话给button.setRolloverEnabled(true);

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/23034202

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档