小编Ben*_*der的帖子

Java在鼠标悬停时重新绘制组件.

我正在尝试制作我的第一个正确定制的GUI,但是我很难更改为组件绘制的图像.基本上,对于我的exitButton(一个JMenu),我覆盖了paint方法,然后添加了一个Mouse监听器,但我不确定如何在鼠标输入方法中重新绘制mouseListener接口中的图像,并再次在鼠标退出方法中重新绘制.基本上我正在寻找一种重新绘制图像的方法,但我迷失了我能做什么.任何帮助将不胜感激.

以下是相关的代码段:

exitBtn = new JMenu(){
       @Override
       protected void paintComponent(Graphics g) {
        super.paintComponent(g);
           ImageIcon exitBtnImg = new ImageIcon("src/images/userInterface/exitBtn.gif");
           g.drawImage(exitBtnImg.getImage(), 0, 5, null);
      }
  };
  exitBtn.setOpaque(false);
  exitBtn.setEnabled(false);
  exitBtn.setPreferredSize(new Dimension(43, 18));
  exitBtn.addMouseListener(new MouseListener() {
        @Override
        public void mousePressed(MouseEvent me) {
        }
        @Override
        public void mouseClicked(MouseEvent me) {
            System.exit(0);
        }
        @Override
        public void mouseEntered(MouseEvent me) {
            //ImageIcon exitBtnImg = new ImageIcon("src/images/exitBtn_hover.gif"); //The ImageIcon for the Image I want to use
            System.out.println("mouse entered");

        }
        @Override
        public void mouseExited(MouseEvent me) {
            // ImageIcon exitBtnImg = …
Run Code Online (Sandbox Code Playgroud)

java user-interface swing jmenu mouselistener

3
推荐指数
1
解决办法
6581
查看次数

标签 统计

java ×1

jmenu ×1

mouselistener ×1

swing ×1

user-interface ×1