我正在尝试创建一个由不同面板组成的简单登录屏幕。我需要调整面板大小的帮助。我要调整大小的面板为绿色。我想缩小一点。绿色的面板是北面板,设置为边框布局。我想缩小绿色面板,因为我感觉它太大了
我尝试了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);
答案 0 :(得分:2)
您使用的BorderLayout具有五个位置,可将组件放置在布局中。这五个位置是PAGE_START,PAGE_END,LINE_START,LINE_END和CENTER。这是这些位置的示意图:
对于此布局,您想将应占据框架剩余空间的组件放在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教程中的部分,以获取更多信息。