Auf Thema antworten

Zwar keine Rectangle, aber hier mal ein Beispiel mit JPanels.


[code=Java]

public class WindowFrame extends JFrame implements MouseListener {

   

    private static final long serialVersionUID = 1L;


    public WindowFrame() {

        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

        init();

        setSize(800,600);

    }


    /**

     * @param args

     */

    public static void main(String[] args) {

        new WindowFrame().setVisible(true);

    }


    private void init() {

        int nRows = 5;

        int nCols = 5;

        setLayout(new GridLayout(nRows, nCols));

       

        for(int i = 0; i < nRows; i++) {

            for(int j = 0; j < nCols; j++) {

                JPanel panel = new JPanel();

                panel.setBorder(BorderFactory.createBevelBorder(BevelBorder.RAISED));

                panel.setForeground(Color.WHITE);

                panel.setOpaque(true);

                panel.setName("x="+j+", y="+i);

                panel.add(new JLabel(panel.getName()));

                panel.setSize(50, 50);

                panel.addMouseListener(this);

                add(panel);

            }

        }

    }

   

   

    @Override

    public void mouseClicked(MouseEvent e) {

        System.out.println("mouseClicked()");

        ((JPanel)e.getSource()).setBackground(Color.BLUE);

    }


    @Override

    public void mousePressed(MouseEvent e) {

        System.out.println("mousePressed()");

        ((JPanel)e.getSource()).setBackground(Color.ORANGE);

    }


    @Override

    public void mouseReleased(MouseEvent e) {

        System.out.println("mouseReleased()");

        ((JPanel)e.getSource()).setBackground(Color.LIGHT_GRAY);

    }


    @Override

    public void mouseEntered(MouseEvent e) {

        System.out.println("mouseEntered()");

        ((JPanel)e.getSource()).setBackground(Color.CYAN);

    }


    @Override

    public void mouseExited(MouseEvent e) {

        System.out.println("mouseExited()");

        ((JPanel)e.getSource()).setBackground(Color.GREEN);

    }


}

[/code]



Oben