Java中的GUI

本文主要学习Java中的GUI编程,介绍了javax.swing包下的图形界面组件,包括容器组件和功能组件。详细讲解了窗口和面板的使用,以及面板的布局管理器。最后给出使用swing组件开发注册界面的实际案例,强调虽GUI少用,但编程思想需掌握。

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

记录Java中的GUI知识,Java中的GUI相关编程思想是需要我们去理解和掌握的。最好可以使用基础的swing组件去构建出界面。完整记录使用swing组件进行登录页面开发,提供完整代码


前言

本文要记录的大概内容

本文主要学习Java中的GUI(图形用户界面)。


提示:以下是本篇文章正文内容

一、swing组件

javax.swing这个包下面放着java的图形界面组件。
组件分为:
1,容器组件:窗口,面板,对话框
2,功能组件:文本输入框,按钮组件,单选,下拉框…

二、swing组件的使用

1.窗口

窗口是一个容器,可以存放面板与组件。(实际上是窗口存放面板,在面板里面存放组件)。
从根本上讲也确实是窗口存放了面板与组件。

代码如下:

public class Demo extends JFrame {
    public Demo() {

        this.setTitle("Hello World");
        this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);//设置点击窗口上的红叉之后的操作
        this.setResizable(false);//设置窗口大小不可改变
        this.setSize(500, 500);//设置窗口的大小
        this.setLocationRelativeTo(null);//设置参数为null,则让窗口相对于显示器,水平,垂直居中(把这个方法放置在所有设置的后面)
           this.setVisible(true);//设置窗口是否可见,这个方法需要放置在所有设置的末尾
    }

    public static void main(String[] args) {
        Demo demo = new Demo();
    }
}

显示效果如下:
显示效果

2.面板

面板的作用是存放组件,将面板添加到窗口。
面板里面包含布局管理器,使用布局管理器管理各个组件在面板中的排列位置。
面板的布局管理器主要包括:流式布局(布局管理器的默认布局),边界布局,网格布局。

代码如下:


public class Demo extends JFrame {
    public Demo() {

        this.setTitle("Hello World");
        this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);//设置点击窗口上的红叉之后的操作
        this.setResizable(false);//设置窗口大小不可改变
        this.setSize(500, 500);//设置窗口的大小
        this.setLocationRelativeTo(null);//设置参数为null,则让窗口相对于显示器,水平,垂直居中(把这个方法放置在所有设置的后面)

        //面板的默认布局是FlowLayout流式布局(组件默认水平居中显示)
        //BorderLayout边界布局默认将组件放置在窗口中间位置,
        //如果有多个组件(未设置方位),则最后添加的组件覆盖掉之前的组件
        //
        JPanel jPanel = new JPanel(new BorderLayout());//创建面板
        this.add(jPanel);//把面板添加到窗口

        JButton jButton1 = new JButton("打开");
        JButton jButton2 = new JButton("关闭");
        JButton jButton3 = new JButton("关闭");
        JButton jButton4 = new JButton("关闭");
        JButton jButton5 = new JButton("关闭");

        jPanel.add(jButton1,BorderLayout.NORTH);
        jPanel.add(jButton2,BorderLayout.SOUTH);
        jPanel.add(jButton3,BorderLayout.WEST);
        jPanel.add(jButton4,BorderLayout.EAST);
        jPanel.add(jButton5);

        this.setVisible(true);//设置窗口是否可见,这个方法需要放置在所有设置的末尾
    }

    public static void main(String[] args) {
        Demo demo = new Demo();
    }
}

使用网格布局显示效果如下:
显示效果

上面的代码是最基础的Java中GUI代码,使用了窗口,面板,还有组件。我们可以知道,在Java的GUI里面主要是通过容器组织各种组件。窗口就是我们可以实际看到的界面窗口,面板相当于是窗口的内容,用于存放组件。组件是我们需要去使用的部件。


三、swing组件的实际案例

现在笔者使用swing组件去开发一个注册界面(不含功能)。

代码如下:

public class LoginDemo extends JFrame {

    public LoginDemo() {

        this.setSize(300, 150);
        this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        this.setTitle("欢迎登录");
        this.setLocationRelativeTo(null);
        this.setResizable(false);

        JLabel accountLabel = new JLabel("管理员");
        Font font = new Font("宋体", Font.BOLD, 15);
        accountLabel.setFont(font);
        JTextField accountText = new JTextField();
        accountText.setColumns(15);
        JPanel jPanel1 = new JPanel(new FlowLayout());
        jPanel1.add(accountLabel);
        jPanel1.add(accountText);

        JLabel passwordLabel = new JLabel("密  码");
        passwordLabel.setFont(font);
        JPasswordField passwordField = new JPasswordField();
        passwordField.setColumns(15);
        JPanel jPanel2 = new JPanel(new FlowLayout());
        jPanel2.add(passwordLabel);
        jPanel2.add(passwordField);

        JPanel jPanel3 = new JPanel(new FlowLayout());
        JButton loginButton = new JButton("登录");
        JButton cancelButton = new JButton("取消");
        jPanel3.add(loginButton);
        jPanel3.add(cancelButton);

        JPanel jPanel = new JPanel(new GridLayout(3, 0));
        jPanel.add(jPanel1);
        jPanel.add(jPanel2);
        jPanel.add(jPanel3);
        this.add(jPanel);
        this.setVisible(true);
    }

    public static void main(String[] args) {
        LoginDemo loginDemo = new LoginDemo();
    }
}

显示效果如下:
实现效果

总结

Java中的GUI已经很少使用。但是里面的编程思想是需要我们去理解和掌握的。最好可以使用基础的swing组件去构建出界面。

整理了Java GUI编程基础知识! public class AllFrame { /** * 这里的代码涉及到 GUI 编程基本面板、基本组件、事件(ActionListener、ChangeListener、MouseListener) */ public AllFrame() { // new 一个主窗体 也可以这样写 new MainFrame(); MainFrame mf = new MainFrame(); } public static void main(String[] args) { new AllFrame(); } // 主窗体 继承 窗体基本格式 类 Jframe 以下弹出窗口均继承 Jframe class MainFrame extends Jframe implements ActionListener { JMenuBar menubar = new JMenuBar();;// 菜单条 JMenu jmenu[] = new JMenu[5];// panelMenu,usedMenu1,usedMenu2,layoutMenu,helpMenu; // 菜单项 JButton closebtn;// 关闭窗体 // 具体的选项 JMenuItem panelitem[] = new JMenuItem[4]; JMenuItem useditem1[] = new JMenuItem[6]; JMenuItem useditem2[] = new JMenuItem[6]; JMenuItem layoutitem[] = new JMenuItem[3]; JMenuItem helpitem = new JMenuItem("关于"); // 菜单中名称 String menu[] = { "面板使用", "常用组件一", "常用组件二", "布局设置", "帮助" }; String pane[] = { "普通面板", "滚动面板", "分割面板", "选项面板" }; String uesd1[] = { "标签", "按钮", "文本框", "文本域", "单选按钮" ,"微调"}; String uesd2[] = { "滑块","复选框", "下拉菜单", "列表", "表格", "树状" }; String layout[] = { "流式布局", "边界布局", "网格布局" }; // Jpanelitem,Jscrollpaneitem,Splitpaneitem,JTabbedpanelitem, // Jlabelitem,Jbuttonitem,JTextfielditem,JTextareaitem,JRadiobuttonitem, // JCheckboxitem,JCombomoxitem,Jlistitem,Jtableitem,Jtreeitem, // Flowlayoutitem,Borderlayoutitem,Girdlayoutitem, // Helpitem}; public MainFrame() { this.setTitle("JAVA图型界面学习GUI)"); // 加载菜单条到窗体中 this.setJMenuBar(menubar); // 重新设置大小 this.setSize(380, 290); // 简单的居中方法 在窗体基本格式类 Jframe 中有详细的居中方法 this.setLocationRelativeTo(null); // 设置关闭窗口 this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); // 调用方法 menu(); // 设置容器 Container con = this.getContentPane(); // 定义一个 标签 “JAVA图型界面学习” JLabel jl = new JLabel("JAVA图型界面学习"); // 组件 设置字体大小, 其他组件用法相同 jl.setFont(new Font("隶书", Font.BOLD, 24)); // 具体定位 组件名.setBounds(x, y, width, height) jl.setBounds(30, 30, 280, 50); // 把标签加到 con 容器中 con.add(jl); /
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

The CrazyMan

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值