Viele button

ich finde den fehler nicht ist warscheinlich wieder so ein 0815 ding und ihr findet das in 2 sek

die main starte nr die run metode

ziel ist es einen 50 X 50 kasten aus button zu machen

	public static void run(){
		
		JFrame Meinfenster = new JFrame ("Fusion");
		Meinfenster.setSize(1280,720);
		Meinfenster.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		Meinfenster.setLayout(null);
		Meinfenster.setVisible(true);
		JLabel ueberschrift = new JLabel("fusions Menue");
		ueberschrift.setBounds(640,20, 110, 25);
		//button		
		JButton[] felder = new JButton[2500];
		int grade = 10;
		int runter = 40;
		int schritte =0;
		for (int i = 0; i<2500;i++){
			if (50<=schritte){
				grade=+10;
				felder**.setBounds(grade, runter, 10, 10);
				Meinfenster.add(felder**);
			}
			else{
				grade = 10;
				runter =+10;
				felder**.setBounds(grade, runter, 10, 10);	
				schritte=0;
				Meinfenster.add(felder**);
			}

		}
			
			
		//add
		Meinfenster.add(ueberschrift);
		
		
		
		
		
	}

}```

```Exception in thread "main" java.lang.NullPointerException
	at Monster2.FusionFensterTest.run(FusionFensterTest.java:32)
	at Monster2.MainTest.main(MainTest.java:9)```

Da fehlt irgendwo ein
feld** = new JButton();
Sonst ist das gesamte Array voller nulls!

LG

PS: Achte doch bei Variabel- Namen auf lowerCamelCase!

ok das habe ich jetzt gemacht die schleife ist jetzt so

			if (50<=schritte){
				felder**= new JButton();
				grade=+10;
				felder**.setBounds(grade, runter, 10, 10);
				MeinFenster.add(felder**);
			}
			else{
				felder**= new JButton();
				grade = 10;
				runter =+10;
				schritte=0;
				felder**.setBounds(grade, runter, 10, 10);	
				MeinFenster.add(felder**);
			}

		}```

ich habe aber jetzt nen anderes prob bei mir wird nur 1 button angezeigt und kein feld 50 X 50

Hier stand ein dummer Beitrag…

NullLayout ist schlecht. Nimm doch ein [japi]GridLayout[/japi], das sollte ungefähr tun was du willst.

Hier noch der Link ins Wiki: GridLayout

Und wenn Du dann noch x += y statt =+ machst, funktioniert es auch mit dem Hochzählen. :slight_smile:

Zur Erklärung. += erhöht x um y. =+ hingegen weist x den Wert +y zu.

erst mal danke für die hilfe ich bin jetzt ein richtiges stück weiter gekommen
ich habe jetzt nur noch ein frage "hoffe ich mal "

der code ist jetzt so


import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;

public class FusionFensterTest {
	public static void run(){
		
		JFrame MeinFenster = new JFrame ("Fusion");
		MeinFenster.setSize(1280,720);
		MeinFenster.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		MeinFenster.setLayout(null);
		MeinFenster.setVisible(true);
		JLabel ueberschrift = new JLabel("fusions Menue");
		ueberschrift.setBounds(640,20, 110, 25);
		//button		
		JButton[] felder = new JButton[2500];
		int grade = 10;
		int runter = 40;
		int schritte =0;
		for (int i = 0; i<2500;i++){
			if (50<=schritte){
				felder**= new JButton();
				grade+=10;
				felder**.setBounds(grade, runter, 10, 10);
				MeinFenster.add(felder**);
			}
			else{
				felder**= new JButton();
				grade = 10;
				runter +=10;
				schritte=0;
				felder**.setBounds(grade, runter, 10, 10);	
				MeinFenster.add(felder**);
			}

		}
			
			
		//add
		MeinFenster.add(ueberschrift);
		
		
		
		
		
	}

}

es werde nur 13 button in einer linie dagestellt
hatte aber vor 50 X 50 hin zu bekommen

warum ich kein GridLayout benutze, ich bin noch am anfang und in meinen tutorials hatte ich das noch nicht. habe mich auch mal nach dem post da mit beschäftigt aber es ist wohl nicht das was ich suche, da ich nich alles voll ausgefullt haben will und auch freibeweglich brauche.
aber trosden danke für den tip

Ein Vorschlag…

import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.SwingUtilities;

public class FusionFensterTest
{
    public static void main(String[] args)
    {
        SwingUtilities.invokeLater(new Runnable()
        {

            @Override
            public void run()
            {
                createAndShowGUI();
            }
        });
    }

    private static void createAndShowGUI()
    {
        JFrame meinFenster = new JFrame("Fusion");
        meinFenster.setSize(1280, 720);
        meinFenster.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        meinFenster.setLayout(null);
        meinFenster.setVisible(true);
        JLabel ueberschrift = new JLabel("fusions Menue");
        ueberschrift.setBounds(640, 20, 110, 25);

        JButton[] felder = new JButton[2500];
        for (int y = 0; y < 50; y++)
        {
            for (int x = 0; x < 50; x++)
            {
                int i = x + y * 50;
                felder** = new JButton();
                felder**.setBounds(x * 10, y * 10, 10, 10);
                meinFenster.add(felder**);
            }
        }
        meinFenster.add(ueberschrift);
    }

}

aber was auch immer das werden soll: 50x50 Buttons ist crancker shit, vermutlich gibt es eine VIEL sinnvollere Lösung…