如何更改 Java 中面板的大小?
How can I change the size of a Panel in Java?
我正在尝试创建一个由不同面板组成的简单登录屏幕。我需要有关调整面板大小的帮助。我要调整大小的面板是绿色的。我想让它小一点。绿色面板是北面板,设置为边框布局。我想把绿色面板变小,因为我觉得它太大了
我尝试了 northPanel.setSize(150,150);
但没有结果
这是我的代码:
JLabel lblWelcome = new JLabel("Welcome To The Login Screen", SwingConstants.CENTER);
JPanel northPanel = new JPanel(new BorderLayout());
northPanel.setBackground(Color.green);
northPanel.add(lblWelcome, BorderLayout.CENTER);
您正在使用 BorderLayout,它有五个位置用于在布局中放置组件。五个位置是 PAGE_START、PAGE_END、LINE_START、LINE_END 和 CENTER。这是这些职位的图表:
对于此布局,您希望将应该占据框架剩余 space 的组件放在中心位置。出于这个原因,northPanel 可能更适合放在 PAGE_START 位置,而包含登录标签和提交按钮的 JPanel 应该放在中心位置。使用此定位将允许您调整 northPanel 的大小并允许包含登录标签和提交按钮的面板占用剩余的框架 space.
I want to make the green panel smaller
在我看来,这两个面板的尺寸相同,这表明您正在使用 GridLayout
作为框架。
不要使用 GridLayout,而是保留框架的默认 BorderLayout。
那么您的代码将类似于:
JLabel lblWelcome = new JLabel("Welcome To The Login Screen", SwingConstants.CENTER);
JPanel northPanel = new JPanel(new BorderLayout());
northPanel.setBackground(Color.green);
northPanel.add(lblWelcome, BorderLayout.CENTER);
frame.add(northPanel, BorderLayout.PAGE_START);
frame.add(centerPanel, BorderLayout.CENTER);
现在绿色面板将仅与 JLabel 一样大。如果你想让面板更大,那么在northPanel中添加一个EmptyBorder
。阅读 How to Use Borders 上的 Swing 教程部分了解更多信息。
我正在尝试创建一个由不同面板组成的简单登录屏幕。我需要有关调整面板大小的帮助。我要调整大小的面板是绿色的。我想让它小一点。绿色面板是北面板,设置为边框布局。我想把绿色面板变小,因为我觉得它太大了
我尝试了 northPanel.setSize(150,150);
但没有结果
这是我的代码:
JLabel lblWelcome = new JLabel("Welcome To The Login Screen", SwingConstants.CENTER);
JPanel northPanel = new JPanel(new BorderLayout());
northPanel.setBackground(Color.green);
northPanel.add(lblWelcome, BorderLayout.CENTER);
您正在使用 BorderLayout,它有五个位置用于在布局中放置组件。五个位置是 PAGE_START、PAGE_END、LINE_START、LINE_END 和 CENTER。这是这些职位的图表:
对于此布局,您希望将应该占据框架剩余 space 的组件放在中心位置。出于这个原因,northPanel 可能更适合放在 PAGE_START 位置,而包含登录标签和提交按钮的 JPanel 应该放在中心位置。使用此定位将允许您调整 northPanel 的大小并允许包含登录标签和提交按钮的面板占用剩余的框架 space.
I want to make the green panel smaller
在我看来,这两个面板的尺寸相同,这表明您正在使用 GridLayout
作为框架。
不要使用 GridLayout,而是保留框架的默认 BorderLayout。
那么您的代码将类似于:
JLabel lblWelcome = new JLabel("Welcome To The Login Screen", SwingConstants.CENTER);
JPanel northPanel = new JPanel(new BorderLayout());
northPanel.setBackground(Color.green);
northPanel.add(lblWelcome, BorderLayout.CENTER);
frame.add(northPanel, BorderLayout.PAGE_START);
frame.add(centerPanel, BorderLayout.CENTER);
现在绿色面板将仅与 JLabel 一样大。如果你想让面板更大,那么在northPanel中添加一个EmptyBorder
。阅读 How to Use Borders 上的 Swing 教程部分了解更多信息。