JPanel消耗整个JFrame

时间:2014-08-08 14:31:33

标签: java swing user-interface jframe jpanel

我正在创建一个具有登录屏幕的Java应用程序。现在我正在设计登录屏幕。我在Panel中使用JFrameBorderLayout.CENTER位于Panel,然后将GridLayout(3,1)的布局设置为JFrame。现在我的应用程序看起来像这样:

Rightnow how my image looks

我想像我这样设计我的JFrame

My design idea

此处灰色部分为Panel,红色部分为TextField,其中包含登录屏幕ButtonTextField。我不希望整个屏幕上显示Buttonpublic class MailClient { JFrame loginScreen; JTextField emailid; JPasswordField password; JButton login; Dimension loginScreenSize; JPanel entireLogin; BorderLayout mainLayout; public static void main (String args[]) { MailClient obj = new MailClient(); obj.build(); } public void build() { mainLayout = new BorderLayout(40, 40); loginScreenSize = new Dimension(300,300); loginScreen = new JFrame("MailClient"); loginScreen.setSize(loginScreenSize); loginScreen.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); loginScreen.setResizable(false); loginScreen.setLocationRelativeTo(null); loginScreen.setLayout(mainLayout); entireLogin = new JPanel(); entireLogin.setLayout(new GridLayout(3,1)); emailid = new JTextField(); password = new JPasswordField(); login = new JButton("LOGIN"); entireLogin.add(emailid); entireLogin.add(password); entireLogin.add(login); loginScreen.add(entireLogin, BorderLayout.CENTER); loginScreen.setVisible(true); } }

这就是我现在所做的

{{1}}

1 个答案:

答案 0 :(得分:1)

如果您希望它具有边缘边框(例如,如果调整大小),请在居中的JPanel周围添加适当厚度的空边框。

myPanel.setBorder(new EmptyBorder(int, int, int, int))

如果要防止BorderLayout CENTER正常工作使其变大,请设置居中JPanel的最大尺寸。

myPanel.setMaximumSize(new Dimension(x, y))