Java Learning - 3. AWT/SWING

本文介绍了Java图形用户界面(GUI)的基础知识,包括使用布局管理器如FlowLayout和BorderLayout来组织组件,以及如何利用事件监听器处理用户交互。文章以JFrame作为窗口基础,JPanel作为内容容器,JButton作为示例组件,详细阐述了组件的添加、布局设置和事件处理。最后,文章提到了显示窗体的关键步骤,即设置窗体可见。
摘要由CSDN通过智能技术生成

目录

布局管理器Layout

事件监听器

Java GUI

        JFrame

        JPanel

        JButton

        组装过程

        显示窗体


        要实现Java的图形化界面,要用到AWT和SWING这两个包,但是在学习GUI之前,先要有这些知识:布局管理器和事件监听器

布局管理器Layout

        在JavaGUI中,为了方便coder管理布局,于是封装了一个叫做布局管理器的东西,可以帮助编程者进行自动布局,下面给出最常见的两种

        1. 流式布局器 FlowLayout

                流式布局器顾名思义,是按照顺序进行布局,例如在一个内容面板中添加按键,每次添加都在前一个的后面,如果这一行放不下了就放到下一行中,默认每行的第一个放在中间,也可以设置为左或右

        2. 边界布局器 BorderLayout

                Java将一个窗体分成五部分,分别为上、下、左、中、右,参见下图

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-OCLKh1ve-1611989830263)(./images/BorderLayout.png)]

                 使用边界布局器可以设置你的内容在这些中的位置

        当然也可以不使用边界布局器,纯用绝对位置来放置组件

jf.setLayout(null);

事件监听器

        要组建一个图形化界面并且具有一定功能,需要监听鼠标、窗体等事件,因此在学习GUI前,要先有事件和事件监听器的知识,但是这不是这篇文章的重点,因此这里给出一篇我认为写的很好的文章

事件监听器详解

Java GUI

        JFrame

        要有一个图形化界面首先得有一个窗体,用于显示内容,在Swing中给出了JFrame作为一个窗体,可以向其中添加内容来显示

        新建一个JFrame类jf,命名为test,可以设置大小、位置、布局器(下一个会提)、默认关闭方式等,其中JFrame的默认布局管理器为BorderLayout

        //创建窗口 默认BorderLayout
        JFrame jf = new JFrame("test");
        jf.setSize(1600,1000);
        jf.setLocationRelativeTo(null);
        jf.setLayout(null);
        jf.setDefaultCloseOperation(jf.EXIT_ON_CLOSE);

       虽然可以将一些组件直接添加到窗体中,但是这样就少了很多灵活性,因此Java提供了一种内容面板 JPanel,它被用来存放组件,然后再将JPanel添加到窗体上显示出来

        JPanel

        与JFrame一样,JPanel也可以设置布局管理器,默认为FlowLayout,如果将其改为null,就可以设置它相对于窗体的位置和大小

JPanel panel=new Original_Image_Panel(im_info);
panel.setLayout(null);
panel.setBounds(50,50,600,600);

        有了内容面板JPanel,就可以向其中添加一些需要的组件,比如按钮、文本框等,这里我详细讲一下按钮组件 JButton

        JButton

        JButton是一个按钮组件,创建如下:

JButton button = new JButton("button");

        可以为其添加事件监听器,比如鼠标事件监听器,它就可以响应鼠标的点击了

button.addMouseListener(new MouseAdapter() {
        @Override
            public void mouseClicked(MouseEvent e) {
                System.out.println("click");
            }
        });

        与前面提到的组件一样,所有的组件都可以设置大小和位置

        现在有了按钮组件,内容面板和窗体,就可以进行组装了

        组装过程

        1. 首先将组件添加到内容面板中

                注意:如果内容面板的布局管理器是null,则需要用setBounds来规定组件的大小和相对于内容面板左上角的位置;如果使用了布局管理器,则不用担心这个,设置了也没用,布局管理器会帮你做好一切的排版工作!

panel.add(button);

        同一个内容面板可以添加多个组件,也可以嵌套添加内容面板,以实现更多样化的布局

        2. 将设计好的内容面板添加到窗体

                同样的,需要关注窗体布局管理器的设置!

jf.getContentPane().add(panel,BorderLayout.SOUTH);

        这里用到了getContentPane然后再add,这是Java的标准添加到窗口的方法

        显示窗体

        这是很重要的一点,在设计完你的布局和组件之后,一定要将窗体设为可视!

jf.setVisible(true);

现在,就可以将之前设计的窗体显示出来啦 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值