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?
Es wäre schön, wenn mir jemand eine kleine Hilfestellung geben könnte.
Vielen Dank im Voraus!
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!