假设有6 个网格….当Mouse 移动到该格就变颜色…当离开就还原原有颜色..
请问如何实现

解决方案 »

  1.   

    java.awt.event.MouseEvent 里边的 MOUSE_ENTERED和MOUSE_EXITED方法怎么样?
      

  2.   

    请问怎样drag  A0 到 A4, 然后位置自动调换?import java.awt.BorderLayout;
    import java.awt.Color;
    import java.awt.Component;
    import java.awt.GridLayout;
    import java.awt.event.MouseEvent;
    import java.awt.event.MouseListener;
    import javax.swing.JFrame;
    import javax.swing.JLabel;
    import javax.swing.JPanel;
    import javax.swing.SwingUtilities;
    public class NewClass extends JFrame implements MouseListener {    JPanel panel;
        GridLayout grid;
        JLabel[] label;
        Object currentObj;
        int index = -1;    public NewClass() {
            grid = new GridLayout();
            panel = new JPanel();        grid.setRows(2);
            grid.setColumns(2);
            panel.setLayout(grid);        label = new JLabel[4];        for (int i = 0; i < label.length; i++) {
                label[i] = new JLabel("A" + i);
                label[i].addMouseListener(this);
                panel.add(label[i]);
            }        getContentPane().add(panel, BorderLayout.CENTER);
            setSize(500, 500);
            setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);    }    public static void main(String[] args) {        SwingUtilities.invokeLater(new Runnable() {            public void run() {
                    new NewClass().setVisible(true);
                }
            });    }    public int getComIndex(Object obj) {
            Component[] c = panel.getComponents();
            for (int i = 0; i < c.length; i++) {
                if (c[i].equals(obj)) {
                    return i;
                }
            }
            return -1;    }    public void mouseClicked(MouseEvent e) {
        }    public void mousePressed(MouseEvent e) {
            System.out.println("Press");
            currentObj = e.getComponent();
            index = getComIndex(currentObj);
            System.out.println("Object " + ((JLabel) currentObj).getText());
            System.out.println("Index " + index);
        }    public void mouseReleased(MouseEvent e) {
        }    public void mouseEntered(MouseEvent e) {
            Object ojb = e.getComponent();
            if (ojb.equals(label[0])) {
                label[0].setOpaque(true);
                label[0].setBackground(Color.GREEN);
            } else if (ojb.equals(label[1])) {
                label[1].setOpaque(true);
                label[1].setBackground(Color.GREEN);
            } else if (ojb.equals(label[2])) {
                label[2].setOpaque(true);
                label[2].setBackground(Color.GREEN);
            } else if (ojb.equals(label[3])) {
                label[3].setOpaque(true);
                label[3].setBackground(Color.GREEN);
            }
        }    public void mouseExited(MouseEvent e) {
            Object ojb = e.getComponent();
            if (ojb.equals(label[0])) {
                label[0].setOpaque(true);
                label[0].setBackground(new Color(238, 238, 238));
            } else if (ojb.equals(label[1])) {
                label[1].setOpaque(true);
                label[1].setBackground(new Color(238, 238, 238));
            } else if (ojb.equals(label[2])) {
                label[2].setOpaque(true);
                label[2].setBackground(new Color(238, 238, 238));
            } else if (ojb.equals(label[3])) {
                label[3].setOpaque(true);
                label[3].setBackground(new Color(238, 238, 238));
            }
        }
    }