2017-03-15 2 views
0

Ich versuche, BorderLayout in IntelliJ zu implementieren, und habe Probleme, es zu funktionieren. Es kompiliert gut, aber wenn es läuft, sehe ich den Betrachter für eine Sekunde und dann stürzt er ab. Der Code, den ich zur Zeit habe, istHinzufügen von Komponenten zu BorderLayout

Button Next=new Button("Next"); 
    Button Back=new Button("Back"); 
    Container panel1=new Container(); 
    Container panel2=new Container(); 
    home = new Form("Home"); 
    home.setLayout(new BorderLayout()); 
    panel1.setLayout(new BorderLayout()); 
    panel2.setLayout(new BorderLayout()); 
    home.addComponent(BorderLayout.EAST,panel1); 
    home.addComponent(BorderLayout.WEST,panel2); 
    panel1.addComponent(Next); 
    panel2.addComponent(Back); 

Der Fehler ich, nachdem es bekommen abstürzt ist „Can not Komponente Border Container ohne Einschränkung Parameter hinzufügen“. Ich habe versucht, einen Constraint-Parameter zu untersuchen und auch mit BorderLayout in IntelliJ zu arbeiten, aber alle Texte, die ich fand, waren entweder nicht hilfreich oder zu kompliziert zu verstehen. Vielen Dank!

Antwort

0

Die Fehlermeldung besagt, dass Sie angeben müssen, wo Sie eine Komponente zu einem Rahmenlayout hinzufügen möchten. Sie haben dies beim Hinzufügen von Komponenten nach Hause getan, aber Sie haben nicht, wenn Sie Komponenten zu panel1 und panel2 hinzufügen. Sie müssen BorderLayout.EAST (oder WEST, oder was auch immer) hinzuzufügen, zu erhalten:

panel1.addComponent(BorderLayout.EAST, Next); 
panel2.addComponent(BorderLayout.WEST, Back); 

Aber ich denke, Sie das falsch verwenden. Wahrscheinlich möchten Sie kein Rahmenlayout in Panel1 oder Panel2 - das Layout des Standardflusses ist in Ordnung. Wenn Sie also die Zeilen panel1/2.setLayout() entfernen, sollte Ihr Code gut funktionieren.

BTW: In Java wir keine Großbuchstaben am Anfang von Variablen verwenden, so Next und Back sollte next und back sein. Auch sollte panel1 etwas wie nextPanel sein, und panel2 sollte etwas wie backPanel sein.

Um noch eins hinzuzufügen - niemand benutzt AWT mehr. Wir sind alle weitergezogen (hauptsächlich zu html5). Also, versuchen, dies in Schwung, würden Sie erhalten:

import javax.swing.*; 
... 
JButton next = new JButton("Next"); 
JButton back = new JButton("Back"); 
JFrame home = new JFrame("Home"); 
home.setLayout(new BorderLayout()); 
home.add(back, BorderLayout.WEST); 
home.add(next, BorderLayout.EAST); 
+0

Hallo, ich habe versucht, was Sie vorgeschlagen, aber ich bin immer noch in das gleiche Problem läuft. Mein neuer Code ist –

+0

Button Next = new Button ("Next"); Schaltfläche Zurück = neue Schaltfläche ("Zurück"); Container panel1 = neuer Container(); Container panel2 = neuer Container(); // Erstellen und Erstellen des Home-Formulars home = neues Formular ("Home"); home.setLayout (neues BorderLayout()); panel1.setLayout (neues BorderLayout()); panel2.setLayout (neues BorderLayout()); home.addComponent (BorderLayout.EAST, Panel1); home.addComponent (BorderLayout.WEST, Panel2); panel1.addComponent (BorderLayout.EAST, Weiter); panel2.addComponent (BorderLayout.WEST, Zurück); –

+0

Irgendwelche Ideen über was falsch ist? Vielen Dank! –

Verwandte Themen