Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/322.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Swing登录表单_Java_Swing_Layout_Layout Manager_Grouplayout - Fatal编程技术网

Java Swing登录表单

Java Swing登录表单,java,swing,layout,layout-manager,grouplayout,Java,Swing,Layout,Layout Manager,Grouplayout,我正在尝试使用JavaSwing创建一个登录表单。但我希望布局看起来更紧凑,但仍然反应灵敏 我的项目结构 编辑 在尝试了发布的答案后,我得到: 表单面板中的组件的行为与我预期的不同 我的代码是: 登录面板 包GUI.pages; 导入javax.swing.*; 公共类LoginPanel扩展了JPanel{ 私有静态最终整数填充=30; //一些标签、按钮、组和字段 私有静态jlabelusernamelab; 私有静态JTextField usernameInputField; 专用静态JL

我正在尝试使用JavaSwing创建一个登录表单。但我希望布局看起来更紧凑,但仍然反应灵敏

我的项目结构

编辑

在尝试了发布的答案后,我得到:

表单面板中的组件的行为与我预期的不同

我的代码是:

登录面板

包GUI.pages; 导入javax.swing.*; 公共类LoginPanel扩展了JPanel{ 私有静态最终整数填充=30; //一些标签、按钮、组和字段 私有静态jlabelusernamelab; 私有静态JTextField usernameInputField; 专用静态JLabel密码标签; 私有静态JPasswordField passwordInputField; 私有静态JButton提交; 私有静态JLabel title=Helpers.generateTile; 公共登录面板{ SetLayoutNewBorderLayout; 设置大小400,400; JPanel titleContainer=新的JPanel; titleContainer.setLayoutnew FlowLayoutFlowLayout.LEFT,PADDING,PADDING; titleContainer.addtitle; //用户名行 usernamelab=newjlabelUserName:; usernameInputField=新的JTextField50; //密码行 passwordLabel=新的JLabelPassword:; passwordInputField=新的JPasswordField150; JPanel表格=新JPanel; form.SetLayout新建GridBagLayout; GridBagConstraints c=新的GridBagConstraints; c、 填充=GridBagConstraints.HORIZONTAL; c、 gridx=0; c、 gridy=0; c、 锚点=GridBagConstraints.WEST; c、 插图=新插图0,20,0,0; form.addusernameLabel,c; c=新的约束条件; c、 填充=GridBagConstraints.HORIZONTAL; c、 gridx=0; c、 gridy=1; c、 锚点=GridBagConstraints.WEST; c、 插图=新插图0,20,0,0; form.addpasswordLabel,c; c=新的约束条件; c、 gridx=1; c、 gridy=0; c、 权重x=0.1; c、 ipadx=200; form.addusernameInputField,c; c=新的约束条件; c、 gridx=1; c、 gridy=1; c、 权重x=0.001; c、 权重x=0.001; c、 ipadx=200; form.addpasswordInputField,c; //消息标签,文本取决于查询的结果。 消息=新的JLabel; //配置提交按钮 提交=新JButtonSign in; submit.addActionListener新建LoginActionListener; submit.setActionCommandlogin; //配置重定向按钮 registerRedirect.setActionCommandregisterRedirect; registerRedirect.AddActionListener新建路由器; JPanel submitContainer=新的JPanel; submitContainer.setLayoutnew FlowLayoutFlowLayout.RIGHT,PADDING,PADDING; submitContainer.addsubmit; form.SetMaximumSizeNewDimension200,passwordInputField.getHeight; //将所有内容添加到布局中 addtitleContainer,BorderLayout.PAGE_START; addform; 添加SubmitContainer,BorderLayout.PAGE_END; } } 主要

软件包图形用户界面; 导入javax.swing.*; 导入GUI.pages.LoginPanel; 公共类主框架{ 公共最终静态int窗口_宽度=750; 公共最终静态内窗高度=550; 公共静态无效字符串[]args{ JFrame=新的主框架; } 公用干管{ JPanel login_panel=新登录面板; ADDU面板; 设置窗宽、窗高; setDefaultCloseOperationJFrame.EXIT_ON_CLOSE; 设置VisibleTrue; } } 这就是我希望它看起来像是更新的:

REM(the title)        
________________________________
           __________________
Username: [__________________]
           __________________
Password: [__________________]
                      
                   [Submit button]
                    
我不清楚提交按钮是右对齐还是居中,但是

蓝色区域:边框布局。 红色区域:GridBagLayout-标签右对齐,文本字段左对齐。在边框布局的中心。 绿色区域:流程布局,页面开始左对齐,页面结束根据需要居中对齐或右对齐。
1为了更快地获得更好的帮助,请添加或。2以最小尺寸提供ASCII艺术或GUI预期布局的简单绘图,如果可调整大小,则提供更大的宽度和高度,以显示应如何使用额外空间。按钮右对齐按钮右对齐。。那么,你被分类了?你看过名单了吗?文档应该是您首先查看的地方。flow layout的构造函数是一个很好的起点。请在a上的表单中显示您的尝试,作为问题的答案。听起来好像代码在添加组件时没有使用页面开始和页面结束的约束。我已经更新了它。返回并再次阅读MRE文档。他还读了报纸上的那一页。一个较长的页面谈论同样的事情,但有更多的细节。上面贴的既不是第一个的R,也不是第二个的SC。
REM(the title)        
________________________________
           __________________
Username: [__________________]
           __________________
Password: [__________________]
                      
                   [Submit button]