【JAVA】GUI编程

本文详细介绍了Swing库在Java GUI开发中的应用,包括容器组件(如 JFrame 和 JPanel)、常用的布局管理器(FlowLayout、BorderLayout 和 GridLayout),以及如何处理事件和创建对话框。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

  1. GUI的概念
  2. Swing概述
  3. 容器组件
  4. 布局管理器
  5. 常用组件
  6. 事件处理
  7. 对话框

GUI的概念

GUI(Graphical User Interface)即图形用户界面,它能够使应用程序使用起来更加便捷,看上去更加友好。

Swing概述

 Swing是纯Java组件,使得应用程序在不同的平台上运行时具有相同外观和相同的行为。Swing中的大部分组件类位于javax.swing包中。Swing中的组件非常丰富,支持很多功能强大的组件。

容器组件 

Java的图形用户界面的基本组成部分是组件组件是一个以图形化的方式,显示在屏幕上并能与用户进行交互的对象;

组件不能独立地显示出来,必须将组件放在一定的容器(container)中才可以显示出来。

容器可以容纳多个组件,通过调用容器的add(Component comp)方法向容器中添加组件。

窗口(Frame)和面板(Panel)是最常用的两个容器。

常用的容器组件:

JFrame

用于在Swing程序中创建窗口。

JFrame的常用方法有:

  • void setSize(int width, int height):设置窗口尺寸大小
  • void setVisible(boolean b):显式窗口,放在代码最后
  • void setTitle(String title):设置窗口标题
  • void setResizable(boolean resizable):设置是否能更改界面大小
  • void setLocation(int x,int y):设置界面位置
  • void setLocationRelativeTo(null):窗口相对位置,水平居中
  • void setDefaultCloseOperation(int operation):关闭窗口选项
  • void dispose():关闭窗口,并释放一部分资源。

dispose()和setVisible()方法,在表象上没有任何区别,它们的实质区别在于setVisible方法仅仅隐藏窗体,而dispose方法是关闭窗体,并释放一部分资源。 

Jpanel

JPanel提供面板,它是轻量级的容器; 面板中可以添加其它组件,也可以设置布局,我们一般使用面板来实现布局嵌套。

package Day1.Demo1;

import javax.swing.*;
import java.awt.*;

public class Demo1 extends JFrame {
    public static void main(String[] args) {
        //JFrame
        JFrame jFrame = new JFrame();//新建窗口
        //JFrame jFrame = new JFrame("我的GUI界面");//新建窗口,并设定标题
        jFrame.setSize(500,500);//设置窗口尺寸大小
        jFrame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);//关闭窗口选项
        jFrame.setTitle("我的GUI界面");//设置窗口标题
        jFrame.setResizable(false);//禁止更改界面大小
        jFrame.setLocation(500,500);//更改界面位置
        jFrame.setLocationRelativeTo(null);//窗口相对位置,水平居中

        //JPanel
        JPanel jPanel=new JPanel();//面板,面板默认流式布局,组件居中对齐
        JPanel jPanel1=new JPanel(new FlowLayout(FlowLayout.CENTER));//流式布局
        JPanel jPanel2=new JPanel(new GridLayout());//网格布局
        JPanel jPanel3=new JPanel(new BorderLayout());//边界布局
        jFrame.add(jPanel);//在窗口上添加面板
        Color color=new Color(200);//新建颜色
        jPanel.setBackground(color);//设置面板背景颜色

        //新建按钮JButton
        JButton jButton1=new JButton("按钮1");
        JButton jButton2=new JButton("按钮2");
        JButton jButton3=new JButton("按钮3");
        JButton jButton4=new JButton("按钮4");
        jButton1.setSize(50,50);//设置组件大小
        jButton2.setLocation(400,500);//设置组件位置
        jPanel.add(jButton1);//向面板内添加按钮
        jPanel.add(jButton2,BorderLayout.AFTER_LAST_LINE);//将组件放在面板的指定位置中
        jPanel.add(jButton3);
        jPanel.add(jButton4);

        //新建标签
        JLabel jLabel=new JLabel("用户名");
        jLabel.setForeground(color);//设置标签字体颜色
        jLabel.setFont(new Font("黑体",Font.BOLD,20));//设置标签字体
        jPanel.add(jLabel);//将标签添加到面板中

        //新建单行文本框
        JTextField jTextField=new JTextField(20);//新建单行文本框,设置字体数为20(也可以不设置)
        jPanel.add(jTextField,FlowLayout.CENTER);

        jPanel.setVisible(true);//显式面板
        jFrame.setVisible(true);//显式窗口,放在代码最后
        //this.setVisible(true);//this指当前窗口,显式窗口,放在代码最后
    }
}

布局管理器

swing中,提供了布局管理器类的对象可以管理。

每个Jpanel都有一个布局管理器对象,当容器需要对某个组件进行定位或判断其大小尺寸时,就会调用其对应的布局管理器,调用Jpanel的setLayout方法改变其布局管理器对象或通过构造方法设置。

三种常用的布局管理器:FlowLayout , BorderLayout, GridLayout。

 FlowLayout

FlowLayout布局管理器是流式布局管理器,它将组件按照从左到右、从上到下的顺序来安排,并在默认情况下使组件尽量居中放置。

FlowLayout布局管理器对组件逐行定位,行内从左到右

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值