Ich habe eig nur vor ein simples button array zuerstellen, dass 8*8 buttons beim start erstellt. Habe dabei folgenden quelltext:
Java:
publicclass GUI extendsJFrame{privateJButton sf[][]=newJButton[8][8];publicGUI(String title){super(title);setDefaultCloseOperation(WindowConstants.DISPOSE_ON_CLOSE);int frameWidth =400;int frameHeight =400;setSize(frameWidth, frameHeight);Dimension d =Toolkit.getDefaultToolkit().getScreenSize();int x =(d.width -getSize().width)/2;int y =(d.height -getSize().height)/2;setLocation(x, y);Container cp =getContentPane();
cp.setLayout(null);for(i=0; i==7; i++){for(j=0; j==7; j++){
sf[i][j]=newJButton();
sf[i][j].setBounds(20+40*i,20+40*j,40,40);}}setResizable(true);setVisible(true);publicstaticvoidmain(String[] args){newGUI("GUI");}}
Eig müsste alles stimmen aber es werden keine buttons erstellt. Ich weiss nicht ich programmiere grad auf einem netbook, kann es sein dass deswegen etwas nicht stimmt, oder dass ich den java editor falsch installiert hab?
Danke für die hilfe
Ohwei, der Code lässt sich doch noch nicht einmal kompilieren!
Fehlt nach Zeile 27 nicht eine Klammer? Was ist mit i und j ? Welchen Datentyp haben diese?
Und die Schleifenbedingung solltest du auch noch einmal überdenken!
[c]for (int i = 0; i == 7; i++) {[/c] die Schleife wird so gar nicht durchlaufen! Vermutlich fehlt dann auch noch ein
Code:
cp.add(sf[i][j]);
innerhalb der Schleife
Am Besten du lernst nochmal die Grundlagen, ohne GUI
Jo klammer hab ich vergessen, musste alles mit dem handy abschreiben weil ich im mom kein inet habe deswegen hab ichs vergessen. Die add zeile ist auch da. Aber was ist an der forschleife falsch? Datentyp wird doch in der schleife zugewiesen.
Ahh shit ja bei meinem programm hab ichs so, habs bloss beim abschreiben übersehen. Er kompiliert alles, nur die buttons werden eben nicht angezeigt.
Was ist denn an der bedingung falsch?
Galileo Computing :: Java ist auch eine Insel – 2.7 Schleifen
---
Schleifentest/Schleifenbedingung. Der mittlere Teil, wie i <= 10, wird vor dem Durchlaufen des Schleifenrumpfs – also vor jedem Schleifeneintritt – getestet. Ergibt der Ausdruck false, wird die Schleife nicht durchlaufen und beendet. Das Ergebnis muss, wie bei einer while-Schleife, vom Typ boolean sein. Ist kein Test angegeben, so ist das Ergebnis automatisch true.
----
i == 7 ergibt eben false, du da ja zuvor i mit 0 initialisiert, ergo die Schleife ist beendet bevor sie angefangen hat