JButton() only working when mouse hovers

后端 未结 4 1446
不知归路
不知归路 2020-11-27 08:26
    import java.awt.*;
    import java.awt.image.*;
    import java.awt.event.*;
    import javax.imageio.*;
    import java.lang.*;
    import java.io.*;
    import         


        
4条回答
  •  悲&欢浪女
    2020-11-27 08:31

    add Icon/ImageIcon directly to the JButton instead of paint() for AWT or paintComponent() for Swing JComponents

    Contructor JButton(Icon) knows Icon or ImageIcon

    enter image description here

    from code

    import java.awt.*;
    import javax.swing.*;
    
    public class ButtonsIcon extends JFrame {
    
        private static final long serialVersionUID = 1L;
        private ImageIcon errorIcon = (ImageIcon) UIManager.getIcon("OptionPane.errorIcon");
        private Icon infoIcon =  UIManager.getIcon("OptionPane.informationIcon");
        private Icon warnIcon =  UIManager.getIcon("OptionPane.warningIcon");
    
        public static void main(String[] args) {
            SwingUtilities.invokeLater(new Runnable() {
    
                @Override
                public void run() {
                    ButtonsIcon t = new ButtonsIcon();
                }
            });
        }
    
        public ButtonsIcon() {
            setLayout(new GridLayout(0, 2, 4, 4));
    
            JButton button = new JButton();
            button.setBorderPainted(false);
            button.setBorder(null);
            button.setFocusable(false);
            button.setMargin(new Insets(0, 0, 0, 0));
            button.setContentAreaFilled(false);
            button.setIcon((errorIcon));
            button.setRolloverIcon((infoIcon));
            button.setPressedIcon(warnIcon);
            button.setDisabledIcon(warnIcon);
            add(button);
    
            JButton button1 = new JButton();
            button1.setBorderPainted(false);
            button1.setBorder(null);
            button1.setFocusable(false);
            button1.setMargin(new Insets(0, 0, 0, 0));
            button1.setContentAreaFilled(false);
            button1.setIcon((errorIcon));
            button1.setRolloverIcon((infoIcon));
            button1.setPressedIcon(warnIcon);
            button1.setDisabledIcon(warnIcon);
            add(button1);
            button1.setEnabled(false);
    
            setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
            pack();
            setVisible(true);
        }
    }
    

提交回复
热议问题