Swing小结
Swing组件
可以参考网上的其他教程,这里略过了
Swing布局基础
可以参考网上的其他教程,这里略过了
Swing布局(敲黑板)
一些组件(包括面板)在swing的布局下setSize方法会失效,具体解决方案可以通过 局中局
的布局方式去解决,这里举个登陆界面例子,请往下看!
登陆界面-Panel里的组件
- 这里应该考虑
JLabel
账号JTextField
账号输入框JLabel
注册JLabel
密码JPasswordField
密码输入框JLabel
忘记密码
然后考虑哪些组件需要事件,单独实例化,方便之后调用。
这里拿 JLabel
密码 (不需要绑定事件)和 JLabel
注册 (需要绑定事件) 这个两个组件举例子
JLabel registerUserLabel = new JLabel("注册", JLabel.CENTER);
jPanel.add(registerUserLabel);
// @事件处理
jLabel = new JLabel("密码", JLabel.CENTER);
jPanel.add(jLabel);
可以看到,注册这个标签需要绑定了事件,所以应该单独实例化JLabel registerUserLabel = new JLabel("注册", JLabel.CENTER);
方便日后调用,而jLabel = new JLabel("密码", JLabel.CENTER);
则是采用了一个通用的模板去实例的。
登陆界面-组件进入Panel
组件进入Panel的话,需要调用Panel的add方法。
同理,Panel也只是一个组件,如果不需要事件的话,通用模板实例化即可,无需单独拿出。
jPanel = new JPanel();
这里注意一下,我们在创建下一个通用模板实例的时候就需要add到对应的容器Panel(组件)里,不然新的实例会把旧的实例覆盖掉。
jPanel = new JPanel();
jPanel.setLayout(new GridLayout(2, 3, 10, 10));
jLabel = new JLabel("用户名 : ", JLabel.CENTER);
jPanel.add(jLabel);
JTextField userNameTextField = new JTextField();
jPanel.add(userNameTextField);
// @事件处理
JLabel registerUserLabel = new JLabel("注册新用户", JLabel.CENTER);
jPanel.add(registerUserLabel);
// @