JPanel 按钮不在正确的位置

JPanel button is not at the correct place

我为桌面应用程序制作了一个自定义 JFrame,并在应用程序的最顶部添加了一个 JPanel 作为标题框的副标题。问题是当我添加一个按钮时,它位于 JPanel 的中间而不是通常的左上角。即使我将它设置在不同的位置,它也不会移动。 这是代码:

        JFrame f = new JFrame("Hello");
        f.setResizable(true);
        JPanel pa = new JPanel();
        JButton btn = new JButton("Exit");

        btn.setBackground(Color.white);
        btn.setText("Button");
        btn.setSize(300, 80);
        btn.setLocation(50, 0);

        pa.setBackground(Color.red);
        pa.setPreferredSize(new Dimension(width,60));
        pa.add(btn);

        f.setBackground(Color.white);
        f.setUndecorated(true);
        f.getContentPane().add(pa, BorderLayout.NORTH);
        f.setSize(new Dimension(width,height));
        f.setLocation(200, 200);
        f.setVisible(true);

您在框架中使用了 BorderLayout。您可以在面板中执行相同的操作。

pa.setLayout(new BorderLayout());
pa.add(btn, BorderLayout.WEST);

一般来说,setLocation 倾向于对抗布局管理器,所以你通常不想使用它,除非你要定位 everything手.

that is one way to do it, but BorderLayout way is not very good way because i also want to add another button next to it.

那么这可能需要的是使用 FlowLayout.LEADING 作为对齐方式的 FlowLayout

但作为一般提示:

  1. 提供最小尺寸的 ASCII 艺术图或 预期 GUI 布局的简单绘图(显示 所有 组件),如果可调整大小,具有更多的宽度和高度 - 以显示应如何使用额外的 space。
  2. 为了尽快获得更好的帮助,post 您尝试的最小、完整和可验证示例Short, Self Contained, Correct Example