在jpanel中加jbutton,有没有方法让加上去的jbutton在鼠标没放上去时看不出来有jbutton,当鼠标放上去了就有jbutton

解决方案 »

  1.   

    我帮你编好了,你自己看一下:
     import java.awt.event.MouseEvent;
    import java.awt.event.MouseListener;import javax.swing.JButton;
    import javax.swing.JFrame;
    import javax.swing.JPanel;
    public class Jbutton_Mouse {
     public static void main(String[] args) {
      JFrame frame = new JFrame("鼠标按钮");
      JPanel panel=new JPanel();
      JButton button = new JButton();
      
      button.addMouseListener(new MouseListener() {
       
       public void mouseReleased(MouseEvent e) {
       
        
       }
       
       public void mousePressed(MouseEvent e) {
       
        
       }
       
       public void mouseExited(MouseEvent e) {
        System.out.println("out");
       }
       
       public void mouseEntered(MouseEvent e) {
        System.out.println("in");
       }
       
       public void mouseClicked(MouseEvent e) {
     
        
       }
      });
      panel.add(button);
      frame.add(panel);
      frame.pack();
      frame.setVisible(true);
     }
      

  2.   

    通过MouseMotionListener实现
    import java.awt.*;
    import java.awt.event.*;
    import javax.swing.*;public class Test extends JFrame
    {
    private JPanel center = new JPanel();
    private JButton jButton = new JButton("Button"); public Test()
    {
    add(center);
    center.setLayout(new BorderLayout(10, 10));
    center.add(jButton);
    center.add(new JLabel("Label"), BorderLayout.SOUTH);
    center.add(new JLabel("Label"), BorderLayout.NORTH);
    center.add(new JLabel("Label"), BorderLayout.WEST);
    center.add(new JLabel("Label"), BorderLayout.EAST);

    pack();
    setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    setVisible(true);

    center.addMouseMotionListener(new MouseAdapter()
    {
    public void mouseMoved(MouseEvent e)
    {//注意,jButton.getBounds()得到的Rectangle和e.getPoint()得到的点都是相对于其父容器center而言的
    jButton.setVisible(jButton.getBounds().contains(e.getPoint()));
    }
    });
    }

    public static void main(String[] args)
    {
    new Test();
    }
    }