面板组件(Jpanel)。一个界面只有一个JFrame,但可以有多个Jpanel 组件
而Jpanel组件上可以放置FlowLayout, BorderLayout,GridLayout组件,这样的组合使用
达到比较复杂的布局效果
例如:
package gui;
import java.awt.BorderLayout;
import java.awt.GridLayout;
import java.awt.FlowLayout;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JPanel;
/** 面板组件的介绍
* Created by admin on 2017/7/2.
*/
public class MyJPanel extends JFrame{
// 定义需要用到的组件
private JButton jButton[] = new JButton[6];
private JPanel jPanel1, jPanel2;
public static void main(String[] args){
MyJPanel myJPanel = new MyJPanel();
}
// 初始化构造函数
public MyJPanel(){
// 创建两个JPanel 面板 JPanel 默认是流式布局
jPanel1 = new JPanel();
jPanel2 = new JPanel();
// 创建按钮组件
for (int i=0; i<jButton.length; i++){
jButton[i] = new JButton(String.valueOf(i));
}
// 添加组件到JPanel上
// jPanel1.add(jButton[0]);
jPanel1.add(jButton[1]);
jPanel1.add(jButton[2]);
jPanel2.add(jButton[3]);
jPanel2.add(jButton[4]);
jPanel2.add(jButton[5]);
// 把JPanel添加到JFrame 并指定位置
this.add(jPanel1, BorderLayout.NORTH);
this.add(jButton[0], BorderLayout.CENTER);
this.add(jPanel2, BorderLayout.SOUTH);
// 设置JFrame属性
this.setTitle("面板JPanel的使用");
this.setLocation(500, 250);
this.setSize(350, 200);
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
this.setVisible(true);
}
}
JPanel注意事项:
JPanel也是属于容器类组件,上面可以放置其他组件
JPanel上放置的组件默认的布局是流式布局FlowLayout
文件框组件(JTextField) 在awt包中
密码框JPasswordField 在swing包中
使用标签 + 文本框 + 密码框 + 面板 做的登陆页面
package gui;
import java.awt.GridLayout;
import java.awt.TextField;
import javax.swing.JPasswordField;
import javax.swing.*;
/** 文件框, 密码框, 标签的介绍
* 使用这几个组件做一个登录框
* Created by admin on 2017/7/2.
*/
public class MyTextField extends JFrame{
// 定义需要使用的控件, 按钮2 个 面板3 个 标签3
private JButton jButton, jButton2;
private JPanel jPanel, jPanel2, jPanel3;
private TextField textField;
private JLabel jLabel, jLabel2;
private JPasswordField jPasswordField;
public static void main(String[] args){
MyTextField myTextField = new MyTextField();
}
// 类的初始化,在初始化时创建控件
public MyTextField(){
// 创建面板组件
jPanel = new JPanel();
jPanel2 = new JPanel();
jPanel3 = new JPanel();
//创建标签组件
jLabel = new JLabel("用户名:");
jLabel2 = new JLabel("密 码: ");
// 创建文本框组件 10 为宽度
textField = new TextField(10);
// 创建密码框组件 10 为宽度
jPasswordField = new JPasswordField(10);
// 创建按钮组件
jButton = new JButton("登陆");
jButton2 = new JButton("注册");
// 设置JFrame的布局样式为网格布局, 3行 1列
this.setLayout(new GridLayout(3, 1));
// 加入各个组件
// 用户名标签 + 文本框
jPanel.add(jLabel);
jPanel.add(textField);
// 密码标签 + 密码框
jPanel2.add(jLabel2);
jPanel2.add(jPasswordField);
// 登陆 + 注册按钮
jPanel3.add(jButton);
jPanel3.add(jButton2);
// 将面板加入JFrame
this.add(jPanel);
this.add(jPanel2);
this.add(jPanel3);
// 设置JFrame属性
this.setTitle("登陆");
this.setLocation(500, 250);
this.setSize(350, 200);
this.setResizable(false);
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
this.setVisible(true);
}
}