BorderLayout.Center无法与JPanel一起使用

问题描述 投票:0回答:1
public class BorLay 
{

  BorLay()
  {
      JFrame frame=new JFrame("Connect");
      JPanel panel=new JPanel();
       frame.setLayout(new BorderLayout());
       frame.add(panel,BorderLayout.CENTER);
       panel.add(new JTextField("Click1"));
       panel.add(new JTextField("Click2"));
       frame.setVisible(true);
       frame.setSize(400,500);

  }
  public static void main(String args[])
  {
      new BorLay();
  }
}

“”

上面的代码在将JPanel添加到JFrame时不起作用。但是,如果将JTextField直接添加到JFrame,它会起作用。

java swing jpanel layout-manager border-layout
1个回答
1
投票

要使包含文本字段的面板居中,请将其添加到GridBagLayout

enter image description here

红色边框显示了包含它们的面板如何不增大以填充父容器(内容窗格)。

import java.awt.*;
import javax.swing.*;
import javax.swing.border.*;

public class BorLay {

    BorLay() {
        JFrame frame = new JFrame("Connect");
        JPanel panel = new JPanel();
        panel.setBorder(new LineBorder(Color.RED, 2));
        frame.setLayout(new GridBagLayout());
        frame.add(panel);
        panel.add(new JTextField("Click1"));
        panel.add(new JTextField("Click2"));
        frame.setVisible(true);
        frame.setSize(200, 100); // make bigger as per need
    }

    public static void main(String args[]) {
        new BorLay();
    }
}
© www.soinside.com 2019 - 2024. All rights reserved.