Ich habe ein Problem mit einigen Tasten und Panels. Ich habe ein JPanel mit einem GridBagLayout 6x1 erstellt.JButtons in JPanel nehmen zu viel Platz
GraphicPaintedPanel deck = new GraphicPaintedPanel();
GridBagLayout gblDecks = new GridBagLayout();
gblDecks.columnWidths = new int[]{0, 0, 0, 0, 0, 0, 0};
gblDecks.rowHeights = new int[]{0, 0};
gblDecks.columnWeights = new double[]{0.15, 0.15, 0.15, 0.15, 0.15, 0.15, Double.MIN_VALUE};
gblDecks.rowWeights = new double[]{1.0, Double.MIN_VALUE};
deck.setLayout(gblDecks);
Das Problem kommt, wenn ich versuche, Tasten zu diesem Panel hinzuzufügen, da sie Platz nehmen auf, wie viele sie sind, auch tho sie eine feste Größe haben sollte. Wenn ich zum Beispiel
Ich erstelle 4 Tasten und das Panel soll 4 Taste und 2 "leere Leerzeichen" haben. Aber stattdessen hat es 4 Knöpfe, die den ganzen Raum einnehmen, den sie können.
Wenn ich tun
for(int j=0; j<6; j++){
JButton activate= new JButton("ACTIVATE LEADER CARD");
GridBagConstraints gbcActivate = new GridBagConstraints();
gbcActivate.gridx = j;
gbcActivate.fill = GridBagConstraints.BOTH;
deck.add(activate, gbcActivate);
}
Sollte nicht die Dimensionen festgelegt werden? Kann mir jemand helfen?
Da ich nicht eine [mcve] von Ihnen zu testen, sagen Sie mir, was passiert, wenn Sie diese Zeile entfernen: 'gbcActivate.fill = GridBagConstraints.BOTH;'? – Frakcool
Genau was @Frakcool sagt. –
Lesen Sie den Abschnitt aus dem Swing-Lernprogramm zu [Verwendung von GridBagLayout] (http://docs.oracle.com/javase/tutorial/uiswing/layout/gridbag.html), um zu erklären, wofür jede Einschränkung verwendet wird. Sie können auch einen einfacheren Layout-Manager wie 'FlowLayout' verwenden. – camickr