Hallo,
ich möchte so etwas wie "Vier Gewinnt" programmieren, allerdings mit verschieden großen Spielfeldern (3x3, 4x4 und 5x5 Felder).
Irgendwie funktioniert das was ich vorhabe aber nicht; jedes Mal wenn ich auf einen Button drücke, werden die Felder nicht gezeichnet. Für die Feldererstellung wird eine neue Methode(draw3x3(),...) per ActionListener aufgerufen. Kann mir jemand sagen, was hier nicht stimmt?
ich möchte so etwas wie "Vier Gewinnt" programmieren, allerdings mit verschieden großen Spielfeldern (3x3, 4x4 und 5x5 Felder).
Irgendwie funktioniert das was ich vorhabe aber nicht; jedes Mal wenn ich auf einen Button drücke, werden die Felder nicht gezeichnet. Für die Feldererstellung wird eine neue Methode(draw3x3(),...) per ActionListener aufgerufen. Kann mir jemand sagen, was hier nicht stimmt?
Code:
import java.awt.BorderLayout;
import java.awt.Dimension;
import java.awt.FlowLayout;
import java.awt.GridLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JTextField;
public class Spielfeld extends JPanel {
public int zahlen[][];
public JTextField jTextField[][];
public static void main(String[] a) {
new Spielfeld(500, 500);
}
public Spielfeld(int w, int h) {
this.setPreferredSize(new Dimension(w, h));
JFrame jFrame = new JFrame("Spiel");
jFrame.add(this);
jFrame.pack();
GUI();
jFrame.setVisible(true);
}
private void GUI() {
setLayout(new BorderLayout());
JPanel jPanel1 = new JPanel(new FlowLayout());
JButton jButton = new JButton("3x3 Felder");
jButton.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
draw3x3();
}
});
jPanel1.add(jButton);
jButton = new JButton("4x4 Felder");
jButton.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
draw4x4();
}
});
jPanel1.add(jButton);
jButton = new JButton("5x5 Felder");
jButton.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
draw5x5();
}
});
jPanel1.add(jButton);
add(jPanel1, BorderLayout.NORTH);
}
public void draw3x3() {
JPanel jPanel2 = new JPanel(new GridLayout(3, 3));
zahlen= new int[3][3];
jTextField = new JTextField[3][3];
for (int i = 0; i < 3; i++) {
for (int j = 0; j < 3; j++) {
jTextField[i][j] = new JTextField();
jPanel2.add(jTextField[i][j]);
}
}
add(jPanel2, BorderLayout.CENTER);
}
public void draw4x4() {
JPanel jPanel2 = new JPanel(new GridLayout(4, 4));
zahlen= new int[4][4];
jTextField = new JTextField[4][4];
for (int i = 0; i < 4; i++) {
for (int j = 0; j < 4; j++) {
jTextField[i][j] = new JTextField();
jPanel2.add(jTextField[i][j]);
}
}
add(jPanel2, BorderLayout.CENTER);
}
public void draw5x5() {
JPanel jPanel2 = new JPanel(new GridLayout(5, 5));
zahlen= new int[5][5];
jTextField = new JTextField[5][5];
for (int i = 0; i < 5; i++) {
for (int j = 0; j < 5; j++) {
jTextField[i][j] = new JTextField();
jPanel2.add(jTextField[i][j]);
}
}
add(jPanel2, BorderLayout.CENTER);
}
}