简体   繁体   中英

How do I make two JLabels on opposite sides of the screen?

I'm trying to make something that looks like this: 在此处输入图像描述

As you can see, I want the labels on opposite sides of each other on the same line in the same parent container.

I tried using the GridBagLayout , and here is my code:

JPanel cont = new JPanel();

JLabel left = new JLabel("left");
JLabel right = new JLabel("right");

GridBagConstraints gbc = new GridBagConstraints();
gbc.anchor = GridBagConstraints.WEST;
cont.add(left, gbc);

gbc = new GridBagConstraints();
gbc.anchor = GridBagConstraints.EAST;
cont.add(right, gbc);

You can use GridBagLayout, but I find using the constraints painful and sometimes unpredictable. This is easier with GridLayout and specifying the justification of the JLabel.

Here's an example that puts two JLabels in a row as in your drawing:

JPanel labelrow = new JPanel(new GridLayout(1,2));
JLabel left = new JLabel("left side", JLabel.LEFT);
JLabel right = new JLabel("right side", JLabel.RIGHT);

You can do the same with other controls, like buttons, if you put them inside JPanels with FlowLayouts that are left and right-justified.

Here's an example showing it with buttons off to each side:

JPanel buttons = new JPanel(new GridLayout(1,2));
JPanel left = new JPanel(new FlowLayout(FlowLayout.LEFT));
JPanel right = new JPanel(new FlowLayout(FlowLayout.RIGHT));
left.add(new JButton("Left"));
right.add(new JButton("Right"));
buttons.add(left);
buttons.add(right);

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM