Das Problem ist folgendes, und zwar habe ich versucht ein Feld zu erzeugen mit 4 x 4 JButtons, dies wollte ich mit einer for-Schleife umsetzen(ganz unten im Code). In der Theorie sollte der Code eigentlich funktionieren, jedoch erstellte er nur die ersten 15 in normaler Größe und den 16. machte er so groß wie das gesamte Fenster. Für mich macht das keinen Sinn, da ich die bounds immer gleich gelassen habe. Mein Informatik Lehrer konnte mir auch nicht weiter helfen, deshalb probier ichs jetzt hier.
Anbei der Code
Danke für die Hilfe im voraus
CODE (für eclipse):
Anbei der Code
Danke für die Hilfe im voraus
CODE (für eclipse):
Java:
import java.awt.Toolkit;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.*;
import java.awt.*;
public class FENSTER extends JFrame implements ActionListener{
private JButton spielen;
private JButton highscore;
public String name;
public static String title;
public static boolean fenster_b = true;
public static boolean spiel_b = false;
static JButton[] buttons;
public static JFrame spiel;
public static void main(String[] args)
{
Hauptmenu();
}
public static void Hauptmenu()
{
FENSTER fenster = new FENSTER(title);
fenster.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
fenster.setSize(850,850);
fenster.setIconImage(Toolkit.getDefaultToolkit().getImage(FENSTER.class.getResource("/bilder/Icon.jpg")));
fenster.setLocationRelativeTo(null);
fenster.setLayout(null);
fenster.setVisible(fenster_b);
}
public FENSTER(String titel)
{
super(titel);
spielen = new JButton("SPIELEN");
spielen.setBounds(325, 233, 200, 100);
spielen.addActionListener(this);
add(spielen);
highscore = new JButton("BESTENLISTE");
highscore.setBounds(325, 466, 200, 100);
highscore.addActionListener(this);
add(highscore);
}
public void NameEingabe()
{
name = JOptionPane.showInputDialog("Gib hier deinen Nicknamen ein!");
}
public static void SpieleFenster()
{
spiel = new JFrame();
spiel.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
spiel.setSize(840, 865);
spiel.setLocationRelativeTo(null);
spiel.setVisible(spiel_b);
drawButtons();
}
@Override
public void actionPerformed(ActionEvent e) {
// TODO Auto-generated method stub
if (e.getSource() == spielen)
{
NameEingabe();
if(name != null)
{
fenster_b = false;
spiel_b = true;
SpieleFenster();
}
}
if (e.getSource() == highscore)
{
//HighscoreFenster();
}
}
private static void drawButtons()
{
buttons = new JButton[16];
//hier liegt das Problem
for(int i = 0; i<16; i++)
{
if(i<4)
{
buttons[i] = new JButton("");
buttons[i].setBounds(i*200 +10, 10,200,200);
spiel.add(buttons[i]);
}
else if(i<8)
{
buttons[i] = new JButton("");
buttons[i].setBounds((i-4)*200 +10, 210,200,200);
spiel.add(buttons[i]);
}
else if(i<12)
{
buttons[i] = new JButton("");
buttons[i].setBounds((i-8)*200 +10, 410,200,200);
spiel.add(buttons[i]);
}
else if(i<=16)
{
buttons[i] = new JButton("");
buttons[i].setBounds((i-12)*200 +10, 610,200,200);
spiel.add(buttons[i]);
}
}
}
}
Zuletzt bearbeitet von einem Moderator: