Für meine Klasse CSE 205 (Java-Programmierung 2) müssen wir ein wirklich einfaches GUI-Applet entwerfen. Ich bin mit Swing ziemlich vertraut, habe es vorher für ein paar meiner eigenen Projekte benutzt. Ich habe das Programm mit wenigen Problemen entwickelt, und es sieht perfekt auf meinem Computer, wenn sie von Eclipse-laufen:Warum verliert meine Benutzeroberfläche die Formatierung, wenn sie im Browser ausgeführt wird oder auf meinem Computer ausgeführt wird (Java Swing)?
Aber als ich es online einreichen, wo es in Browser ausgeführt wird, wird die Benutzeroberfläche stark dementen, um die Standard Rückkehr zurück:
ich die GridBagLayout zu verwenden aufgrund seiner Einfachheit gewöhnt haben. Das ist es, was ich hier benutze. Die Klassen CreatePanel und SelectPanel (wie im ersten Bild zu sehen) erweitern beide JPanel (nach meinem Professor). Ich habe jede mit:
this.setLayout(new GridBagLayout());
Und und die Komponenten jeweils durch:
//Call the method addItem() to add the create button to the panel
addItem(this, createB,0,2,2,1,defaultInset,GridBagConstraints.CENTER);
//-------
public void addItem(JPanel p, JComponent c, int x, int y, int width, int height, int[] inset, int align)
{
GridBagConstraints gc = new GridBagConstraints();
gc.gridx = x;
gc.gridy = y;
gc.gridwidth = width;
gc.gridheight = height;
gc.weightx = 0;
gc.weighty = 0;
gc.insets = new Insets(inset[0],inset[1],inset[2],inset[3]);
gc.anchor = align;
gc.fill = GridBagConstraints.NONE;
p.add(c, gc);
}
Wer irgendwelche Ideen von dem, was könnte da los? Wenn man bedenkt, dass über die Hälfte meiner Zeit damit verbracht wurde, die Layouts richtig aussehen zu lassen, würde ich mich über eine einfache Lösung freuen. Ich kann bei Bedarf mehr Code posten. Danke für Anregungen.
--EDIT--
Okay Ich habe ein bisschen spielen getan um basierend auf @ MadProgrammer Vorschläge. Ich glaube, ich habe mich irgendwie eingeengt, wo das Problem liegt.
Dies ist der Code, den ich die Größe des JTextField rechts von der Bezeichnung „Geben Sie einen Haustier-Typ festlegen bin mit:
petTypeTF = new JTextField("");
petTypeTF.setPreferredSize(new Dimension(125, 60));
Nun, wenn ich den Code auf etwas anderes zu ändern, wie die Einstellung, Anzahl der Spalten:
petTypeTF = new JTextField("",12);
petTypeTF.setPreferredSize(new Dimension(125, 60));
ich bekomme eine Benutzeroberfläche, die mit dem identisch aussieht, wenn ich es online etwas mit der Einstellung der Anzahl der Spalten zu tun, scheint es nach oben schrauben werden diese es hilft verengen für.. jemand?
Viele Gründe. Ich könnte mir vorstellen, dass die Felder nicht mit Standardspalten (und Zeilen im Falle des Textbereichs) erstellt wurden. Könnte der Layout-Manager sein, der verwendet wurde, um den Bereich auf der Registerkarte zu platzieren ... – MadProgrammer
Ich hatte Angst vor so etwas. Hast du irgendwelche Vorschläge, die ich vielleicht ausprobieren kann? – rphello101
Es ist schwierig, mit einem Beispiel zu arbeiten, aber ... stellen Sie sicher, dass die Textkomponenten mit Spalten-/Zeilenwerten erstellt werden. Verwenden Sie ein 'BorderLayout', um die Komponente auf der Registerkarte zu platzieren und die Einschränkungen für den Textbereich – MadProgrammer