如何在Java中更改面板的大小?

时间:2019-04-09 17:32:04

标签: java swing layout-manager

我正在尝试创建一个由不同面板组成的简单登录屏幕。我需要调整面板大小的帮助。我要调整大小的面板为绿色。我想缩小一点。绿色的面板是北面板,设置为边框布局。我想缩小绿色面板,因为我感觉它太大了

我尝试了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);

LoginScreen

2 个答案:

答案 0 :(得分:2)

您使用的BorderLayout具有五个位置,可将组件放置在布局中。这五个位置是PAGE_START,PAGE_END,LINE_START,LINE_END和CENTER。这是这些位置的示意图:

enter image description here

对于此布局,您想将应占据框架剩余空间的组件放在CENTER位置。因此,northPanel可能更适合PAGE_START位置,而包含登录标签和Submit按钮的JPanel应该位于CENTER位置。使用此位置,您可以调整northPanel的大小,并允许包含登录标签和Submit按钮的面板占用剩余的框架空间。

答案 1 :(得分:1)

  

我想缩小绿色面板

在我看来,两个面板的尺寸相同,这告诉我您正在使用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一样大。如果您希望面板更大,则将一个EmptyBorder添加到northPanel。阅读How to Use Borders上Swing教程中的部分,以获取更多信息。