将 JComponent 与 JPanel 的左侧和右侧对齐

发布于 2024-12-22 04:14:28 字数 255 浏览 0 评论 0原文

我有一个 JPanel,其中包含两个 JComponent,例如两个 JButton,btnLeft 和 btnRight。我希望这两个按钮水平对齐,并且希望 btnLeft 位于 JPanel 的左侧,btnRight 位于 JPanel 的右侧,中间留有任何空间。

我知道我可以通过添加一个水平支柱来使用 BoxLayout 来做到这一点在其中我必须指定之间的空间量,但是必须有一种更简单的方法而不必指定剩余的内容之间的空间是。

我该怎么做?

I have a JPanel that contains two JComponents, say two JButtons, btnLeft and btnRight. I want these two buttons aligned horizontally and I want btnLeft to be on the left side of the JPanel and btnRight to be on the right side of the JPanel with whatever space is left over in between.

I know I can do this with a BoxLayout by adding a horizontal strut in which I have to specify the amount of space in between, but there must be a simpler way without having to specify what the left-over space in between is.

How do I do this?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

燕归巢 2024-12-29 04:14:28

听起来像horizo​​ntalGlue 就是您正在寻找的:

    JComponent comp = new JPanel();
    comp.setLayout(new BoxLayout(comp, BoxLayout.LINE_AXIS));
    comp.add(new JLabel("left"));
    comp.add(Box.createHorizontalGlue());
    comp.add(new JLabel("right"));

Sounds like horizontalGlue is what you are looking for:

    JComponent comp = new JPanel();
    comp.setLayout(new BoxLayout(comp, BoxLayout.LINE_AXIS));
    comp.add(new JLabel("left"));
    comp.add(Box.createHorizontalGlue());
    comp.add(new JLabel("right"));
半衬遮猫 2024-12-29 04:14:28

如果您不介意垂直拉伸按钮,为什么不尝试:

import java.awt.BorderLayout;

import javax.swing.JButton;
import javax.swing.JFrame;

public class JFrame1 {
public static void main(String[] args) {
        JFrame frame = new JFrame();
        JButton btn1 = new JButton("Btn1");
        JButton btn2 = new JButton("Btn2");
        frame.setLayout(new BorderLayout());
        frame.setSize(500, 400);
        frame.add(btn1, BorderLayout.WEST);
        frame.add(btn2, BorderLayout.EAST);
        frame.show();
    }
}

在此处输入图像描述

If you don't mind vertically stretched buttons, why not to try:

import java.awt.BorderLayout;

import javax.swing.JButton;
import javax.swing.JFrame;

public class JFrame1 {
public static void main(String[] args) {
        JFrame frame = new JFrame();
        JButton btn1 = new JButton("Btn1");
        JButton btn2 = new JButton("Btn2");
        frame.setLayout(new BorderLayout());
        frame.setSize(500, 400);
        frame.add(btn1, BorderLayout.WEST);
        frame.add(btn2, BorderLayout.EAST);
        frame.show();
    }
}

enter image description here

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文