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 楼答案
您在错误的面板上设置了布局约束
它应该是
panel2.add(label2)
,而不是frame.add(panel2);
,它应该是frame.add(panel2, BorderLayout.LINE_END);
同样适用于
panel1