12 Stimmen

Wie kann ich den Abstand zwischen vertikal angeordneten Elementen festlegen?

Ich habe einen solchen Code:

    JPanel myPanel = new JPanel();
    myPanel.setLayout(new BoxLayout(myPanel, BoxLayout.Y_AXIS));

    JButton button = new JButton("My Button");
    JLabel label = new JLabel("My label!!!!!!!!!!!");

    myPanel.add(button);
    myPanel.add(label);

Auf diese Weise erhalte ich Elemente, die keinen Abstand zueinander haben. Ich meine, das "obere" Element berührt immer das "untere" Element. Wie kann ich das ändern? Ich möchte gerne einen gewissen Abstand zwischen meinen Elementen haben?

Ich denke über das Hinzufügen einige "Zwischen" JPanel (mit einigen Größe) zwischen meine Elemente. Aber ich glaube nicht, es ist ein eleganter Weg, um den gewünschten Effekt zu erhalten. Kann jemand, bitte, helfen Sie mir mit, dass?

17voto

Kannan Ekanath Punkte 15569
    JPanel myPanel = new JPanel();
    myPanel.setLayout(new BoxLayout(myPanel, BoxLayout.Y_AXIS));

    JButton button = new JButton("My Button");
    JLabel label = new JLabel("My label!!!!!!!!!!!");

    myPanel.add(button);
    myPanel.add(Box.createVerticalStrut(20));
    myPanel.add(label);

wird eine Möglichkeit sein, dies zu tun.

5voto

RTBarnard Punkte 4144

Wenn Sie definitiv beabsichtigen, die BoxLayout um Ihr Panel zu gestalten, dann sollten Sie sich die Wie man BoxLayout verwendet Sun Learning Trail, insbesondere der Unsichtbare Komponenten als Füllmaterial verwenden Abschnitt. Kurz gesagt, mit BoxLayout können Sie spezielle unsichtbare Komponenten erstellen, die als Abstandshalter zwischen Ihren anderen Komponenten dienen:

container.add(firstComponent);
container.add(Box.createRigidArea(new Dimension(5,0)));
container.add(secondComponent);

3voto

M. Jessup Punkte 7916

Vielleicht möchten Sie GridLayout anstelle von BoxLayout in Betracht ziehen, da es über die Attribute Hgap und Vgap verfügt, mit denen Sie einen konstanten Abstand zwischen den Komponenten festlegen können.

GridLayout layout = new GridLayout(2, 1);
layout.setVgap(10);
myPanel.setLayout(layout);
myPanel.add(button);
myPanel.add(label);

1voto

Stefan Kendall Punkte 63658

Verwenden Sie die Box Klasse als unsichtbares Füllelement. Sun empfiehlt Ihnen, so vorzugehen.

BoxLayout-Anleitung .

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X