Erste Schritte - einige Fragen

I

iop

Registriert
Thread Starter
Dabei seit
07.01.2008
Beiträge
1
Reaktionspunkte
0
Hallo zusammen!

Ich möchte zur Übung ein kleines Minesweeper (in Java mit Hilfe von Swing) schreiben. Leider hakt es an der ein oder anderen Stelle.

Meine erste Frage: Ich erstelle ein Fenster, von dem ich die Größe (Höhe und Breite) nicht anpassen kann; die Position anzugeben ist allerdings möglich. Meine Vermutung ist, dass irgendwas mit meiner ContentPane nicht in Ordnung ist. Woran liegt das?

Meine zweite Frage: Ich kann die "setDefaultCloseOperation" nicht setzen. Wieso nicht?

Dritte Frage: Warum kann ich kein Absolutes Layout setzen?


Code:
public class Game extends JFrame implements MouseListener 
{
    private boolean mbleftpressed;
    private int zeilen = 10;
    private int spalten = 15;
    JButton button[][];
    ImageIcon icon;
    ImageIcon icon1;
    Border emptyBorder;
    JPanel panel;
    Dimension frameDimension;
    

    public static void main(String[] args) {
        javax.swing.SwingUtilities.invokeLater(new Runnable() {
            public void run() {
                createAndShowGUI();
            }
        });
    }

    private static void createAndShowGUI() 
    {
        Dimension dim = new Dimension(250, 250);
        JFrame frame = new Game();
        //frame.setLayout(null);
        //frame.setLocationRelativeTo(null);
        //frame.setSize(dim);
        frame.pack();
        frame.setVisible(true);
    }

    public Game()
    {
        super("Minesweeper");
        frameDimension = new Dimension(300, 300);
        emptyBorder = BorderFactory.createEmptyBorder();

        mbleftpressed = false;
        getContentPane().setSize(frameDimension);
        icon = new ImageIcon("leer.png");
        icon1 = new ImageIcon("pushed.png");
        button = new JButton[zeilen][spalten];

        //getContentPane().setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

        getContentPane().setLayout(null);
        getContentPane().setBounds(50,50,200,300);

        int tmpx = 0;
        int tmpy = 0;

        for(int i=0;i<zeilen;i++)
        {
            for(int j=0;j<spalten;j++)
            {
                button[i][j] = new JButton();
                button[i][j].setIcon(icon);
                button[i][j].setBorder(emptyBorder);
                button[i][j].setBounds(tmpx,tmpy,16,16);
                button[i][j].addMouseListener(this);
                getContentPane().add(button[i][j]);
                tmpx = tmpx + 16;
            }
            tmpy = tmpy + 16;
            tmpx = 0;
        }
    }

    public void mousePressed(MouseEvent e)
    {
        for(int i=0;i<zeilen;i++)
        {
            for(int j=0;j<spalten;j++)
            {
                if(e.getSource() == button[i][j])
                {
                    button[i][j].setIcon(icon1);
                 }
             }
         }
        mbleftpressed = true;
    }
    public void mouseReleased(MouseEvent e)
    {
        mbleftpressed = false;
        
        for(int i=0;i<zeilen;i++)
        {
            for(int j=0;j<spalten;j++)
            {
                if(e.getSource() == button[i][j])
                {
                    button[i][j].setIcon(icon);
                }
            }
        }
        
    }
    public void mouseExited(MouseEvent e)
    {
            for(int i=0;i<zeilen;i++)
            {
                for(int j=0;j<spalten;j++)
                {
                    if(e.getSource() == button[i][j])
                    {
                        button[i][j].setIcon(icon);
                    }
                }
            }
    }
    public void mouseEntered(MouseEvent e)
    {
        if(mbleftpressed)
        {
            for(int i=0;i<zeilen;i++)
            {
                for(int j=0;j<spalten;j++)
                {
                    if(e.getSource() == button[i][j])
                    {
                        button[i][j].setIcon(icon1);
                    }
                }
            }   
        }
        else
        {
            for(int i=0;i<zeilen;i++)
            {
                for(int j=0;j<spalten;j++)
                {
                    if(e.getSource() == button[i][j])
                    {
                        button[i][j].setIcon(icon);
                    }
                }
            }
        }
    }
    public void mouseClicked(MouseEvent e)
    {
    }
}

Es wäre schön, wenn mir jemand eine kleine Hilfestellung geben könnte.

Vielen Dank im Voraus!
 
Zurück
Oben Unten