5.Java-GUI常见组件

 面板(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);
    }
}

样式如下:

因为面板默认是流式布局

   

posted @ 2020-09-15 04:15  nohert  阅读(841)  评论(0编辑  收藏  举报