繁体   English   中英

当MouseOver“鼠标悬停在它上面”时,如何放大JButton图像

[英]How to Enlarge JButton Image when MouseOver “Mouse hovers over it”

当我将鼠标悬停在“开始”按钮上时,它几乎不会放大。 这是我的代码下面的任何想法,为什么不会呢? 如果能给我看一个示例代码,那真的有帮助! :)“我还是Java的新手,所以这就是为什么示例代码可以帮助我更好地感谢您!”。

public class Window extends JFrame implements MouseListener {

private static final long serialVersionUID = 1L;
private static JButton button;
private static JFrame frame = new JFrame("Scroller Runner v0.2.0");

public static void main(String[] args) throws IOException {
    new Window();
    JButton button = new JButton();
    JTextPane TEXT = new JTextPane();
    BufferedImage buttonIcon;
    button = new JButton(new ImageIcon("C:\\Users\\GOULDEN\\Desktop\\MENU_START.png"));
    button.setBorder(BorderFactory.createEmptyBorder());
    button.setContentAreaFilled(false);
    button.setBounds(490, 250, 300, 75);
    button.setCursor(new Cursor(Cursor.HAND_CURSOR));
    button.addMouseListener(null);

    frame.setSize(1280, 720);
    frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    frame.setLocationRelativeTo(null);
    frame.setVisible(true);
    frame.setResizable(false);
    frame.setContentPane(new JLabel(new ImageIcon(ImageIO.read(new File("C:\\Users\\GOULDEN\\Desktop\\MAIN_MENU.png")))));
    frame.pack();
    frame.add(button);
    frame.setVisible(true);
}@Override
public void mouseEntered(MouseEvent e) {
    button.setBounds(550, 300, 300, 75);
    this.repaint();
}

这段代码对我有用。

当您要更改大小时,只有setSize()更好。

    button.addMouseListener(new java.awt.event.MouseAdapter() {
        public void mouseEntered(java.awt.event.MouseEvent evt) {                
            button.setSize(WIDTH,HEIGHT);                
        }
    });

更换:

button.setBounds(550, 300, 300, 75);

与:

button.setPreferredSize(new Dimension(500, 100));

尝试随附的代码对我有用

   private JFrame myFrame = new JFrame();

   @Override
   public void mouseEntered(java.awt.event.MouseEvent evt) {
            SwingUtilities.invokeLater(new Runnable() {
                public void run() {
                    myFrame.setAlwaysOnTop(true);
                    myFrame.initialize(instance);

                    myFrame.setLocation(instance.nMainPanelXPosition,instance.nMainPanelYPosition);
                    myFrame.setVisible(true);
                }
            });
        }

public void mouseExited(java.awt.event.MouseEvent evt) {
            SwingUtilities.invokeLater(new Runnable() {
                public void run() {
                    myFrame.setVisible(false);
                }
            });
      }

暂无
暂无

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

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