有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

Java GUI逻辑不理解添加到JFrame

我有一个非常直截了当的问题。请向我解释一下,由于我使用的是边框布局,为什么下面的JFrame没有在屏幕左侧显示Hello(100100像素),在屏幕右侧显示World(100100像素)

  • 我创建了一个JFrame
  • 给它分配了一个borderlayout布局
  • 创建了两个带有两个标签的面板,并将面板指定为左右对齐
  • 将面板添加到JFrame
  • 显示JFrame

我错过了什么

JFrame frame = new JFrame("FrameDemo");
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setSize(600, 500);
frame.setLayout(new BorderLayout());
frame.setVisible(true);

JPanel panel1 = new JPanel();
panel1.setPreferredSize(new Dimension(100,100));
panel1.setBackground(Color.BLUE);
JLabel label1 = new JLabel("Hello");
label1.setBackground(Color.YELLOW); 
label1.setForeground(Color.WHITE);
panel1.add(label1,BorderLayout.LINE_START);

frame.add(panel1);

JPanel panel2 = new JPanel();
panel2.setPreferredSize(new Dimension(100,100));
panel2.setBackground(Color.RED);
JLabel label2 = new JLabel("World");
label2.setBackground(Color.CYAN);
label2.setForeground(Color.WHITE);
panel2.add(label2,BorderLayout.LINE_END);

frame.add(panel2);

共 (1) 个答案

  1. # 1 楼答案

    您在错误的面板上设置了布局约束

    它应该是panel2.add(label2),而不是frame.add(panel2);,它应该是frame.add(panel2, BorderLayout.LINE_END);

    同样适用于panel1