面板(Panel)
面板也是一个容器的组件,可以在上面添加
注意:面板不能单独使用,必须在顶层窗口中使用。
常见组件
一些常用的组件例如:
JLabel,
JButton ,
JTextField
JPassworldField
JRadioButton
JCheckBox
JTextArea
JList
JMenuBar
JMenu
JMenultem
Button按钮
Java中的Swing提供了常规按钮,单选按钮,复选按钮和菜单按钮
JButtion普通按钮
按钮Button是点击时触发动作事件的组件.
JRadioButton单选按钮
单选按钮,可以让用户从一组选项中选择一个单一条目.例如性别.
使用单选按钮时注意将,单选按钮放在一组,需要使用java.swing.ButtonGroup. 的add方法,添加到一个组中,位于同一个组的单选按钮就是互斥的. 如果没有将单选按钮放在一个组中,就是独立的..我们让然需要把按钮添加在容器中.因为ButtonGroup添加到容器中..
JCheckBox复选框
多选
JLabel标签
JTextField文本域
JTextArea文本区域
JComboBox组合框
JList 列表框
例如: String[] data = { "one", "two", "three" };
JList list = new JList(data);
p1.add(list);
JmenuBar菜单条
JMenu菜单
JMenultem菜单项
菜单条(MenuBar)中包含菜单(Menu),菜单中中包含菜单项(MenuItem)
注意添加的顺序。例如:记事本的菜单条中包含文件、编辑、格式、查看、帮助菜单。其中文件菜单中包含新建、打开、保存、另存为等菜单项
案例综合。
public class CommonComponent extends JFrame { public CommonComponent() { // 面板 JPanel p1 = new JPanel(); add(p1); // 标签 JLabel name = new JLabel("用户名:"); p1.add(name); // 文本域 JTextField field = new JTextField(8); p1.add(field); // 标签 JLabel passwd = new JLabel("密码"); p1.add(passwd); // 密码域 JPasswordField pass = new JPasswordField(8); p1.add(pass); // 单选按钮 JLabel gender = new JLabel("性别"); p1.add(gender); JRadioButton male = new JRadioButton("男"); JRadioButton female = new JRadioButton("女"); // 单选按钮组,同一个单选按钮组的互斥. ButtonGroup group = new ButtonGroup(); group.add(male); group.add(female); // 注意,单选按钮组不能添加进容器 p1.add(male); p1.add(female); // 复选框 JLabel like = new JLabel("爱好:"); p1.add(like); JCheckBox eat = new JCheckBox("吃饭"); JCheckBox movie = new JCheckBox("看电影"); JCheckBox sleep = new JCheckBox("睡觉"); p1.add(eat); p1.add(movie); p1.add(sleep); // 文本域 JLabel info = new JLabel("个人简介"); p1.add(info); JTextArea area = new JTextArea(20, 20); p1.add(area); // 列表 String[] data = { "one", "two", "three" }; JList list = new JList(data); p1.add(list); // 普通按钮 JButton button = new JButton("注册"); p1.add(button); // 菜单条 JMenuBar bar = new JMenuBar(); // 菜单 JMenu menu = new JMenu("文件"); // 菜单选项 JMenuItem myNew = new JMenuItem("新建"); JMenuItem myOpen = new JMenuItem("打开"); bar.add(menu); menu.add(myNew); menu.add(myOpen); add(bar, BorderLayout.NORTH); } public static void main(String[] args) { CommonComponent frame = new CommonComponent(); frame.setTitle("常用组件"); frame.setSize(400, 400); frame.setLocationRelativeTo(null); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); // 自适应 frame.pack(); frame.setVisible(true); } }
样式如下:
因为面板默认是流式布局