Java一分钟之-Swing基础:JFrame, JPanel, JButton

简介: Java Swing教程介绍了构建桌面应用的关键组件:JFrame(顶级容器,显示主窗口)、JPanel(组合其他组件的容器)和JButton(交互元素)。文中通过示例代码展示了这些组件的使用,并列出常见问题及解决方法,如确保设置JFrame的可见性和关闭操作,正确添加组件至JPanel,以及为JButton添加事件监听器。理解这些基础将有助于开发功能完善的GUI应用。

Java Swing是Java GUI编程库的一部分,提供了丰富的组件和布局管理器来构建桌面应用程序。在Swing中,JFrameJPanelJButton是构建用户界面的基础组件。本文将介绍这三个组件的用法,常见问题以及如何避免错误,同时提供代码示例。
image.png

1. JFrame

JFrame是Swing中的顶级容器,用于展示应用程序的主窗口。通常,你的应用程序会有一个JFrame实例。

示例代码

import javax.swing.JFrame;
import javax.swing.JLabel;

public class JFrameExample {
   
   
    public static void main(String[] args) {
   
   
        JFrame frame = new JFrame("My First JFrame");
        frame.setSize(400, 300);
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

        JLabel label = new JLabel("Hello, Swing!");
        frame.getContentPane().add(label);

        frame.setVisible(true);
    }
}

常见问题及避免方法

  • 问题1:忘记设置可见性。如果不调用setVisible(true),窗口将不会显示。

    • 避免方法:确保在添加所有组件后调用setVisible(true)
  • 问题2:忘记设置关闭操作。默认情况下,关闭窗口不会终止应用程序。

    • 避免方法:使用setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE)关闭应用程序。

2. JPanel

JPanel是Swing中的容器组件,用于组合其他组件。它可以有自己的布局管理器,也可以自定义绘制。

示例代码

import javax.swing.JButton;
import javax.swing.JPanel;
import javax.swing.JFrame;

public class JPanelExample {
   
   
    public static void main(String[] args) {
   
   
        JFrame frame = new JFrame("JPanel Example");
        frame.setSize(400, 300);
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

        JPanel panel = new JPanel();
        JButton button = new JButton("Click me!");
        panel.add(button);
        frame.getContentPane().add(panel);

        frame.setVisible(true);
    }
}

常见问题及避免方法

  • 问题1:忘记添加组件。如果直接将组件添加到JFrame,可能会导致布局混乱。

    • 避免方法:先创建JPanel,再将组件添加到JPanel,最后将JPanel添加到JFrame

3. JButton

JButton是用户交互的主要组件,用于触发某种操作。

示例代码

import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JPanel;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

public class JButtonExample {
   
   
    public static void main(String[] args) {
   
   
        JFrame frame = new JFrame("JButton Example");
        frame.setSize(400, 300);
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

        JPanel panel = new JPanel();
        JButton button = new JButton("Click me!");

        button.addActionListener(new ActionListener() {
   
   
            @Override
            public void actionPerformed(ActionEvent e) {
   
   
                System.out.println("Button clicked!");
            }
        });

        panel.add(button);
        frame.getContentPane().add(panel);

        frame.setVisible(true);
    }
}

常见问题及避免方法

  • 问题1:忘记添加事件监听器。按钮没有监听器,就无法响应用户的点击。

    • 避免方法:为JButton添加ActionListener,处理actionPerformed事件。

结语

JFrameJPanelJButton是构建Swing应用程序的基础。理解它们的工作原理,注意常见的设计模式和错误,可以帮助你创建出功能丰富的用户界面。在实践中,结合不同的布局管理器和组件,你可以构建出各种复杂的界面。

目录
相关文章
|
6月前
|
Java 虚拟化 容器
(Java)Java里JFrame窗体的基本操作(容器布局篇-1)
容器 容器,我的理解是可以包容其他东西的玩意。它可以是一个盒子,可以是一个虚拟化的物品,可只要能包裹住其他存在质体的东西,那么都可以称作是容器。例如:JPanel组件和JScollPane组件两者都是容器也是组件。 既然有容器,那么容器中的布局就必不可少了。不然不规矩的摆放物品,人类看不习惯,我也看不习惯 ???? 本篇内容,将说明java JFrame窗体里容器中几类布局。 说明:所有在JFrame窗体里的容器布局都会使用setLayout()方法,采用的布局参数都将放进这个方法里 绝对布局 调用窗体容器
190 1
|
6月前
|
Java 数据安全/隐私保护 索引
(Java)Java里JFrame窗体的基本操作(组件篇-3)
回顾 说过了下拉框和下拉列表,本篇内容将了解滚动面板和各类输入框 什么是组件? 如果不熟悉组件,可以将组件看作是某个Form表单中的表单元素,组件可以完善JFrame窗口的布局,以及一些功能; 本篇内容中所有的组件所用到的类全都来自于javax.swing这个包中,记得引入; 另:在使用组件前,请先将窗体中的内容类给实例化出来进行操作,代码如下: Container c = getContentPane(); JScollPane JScollPane类,说的就是滚动面板。它不同于其他组件,它是一个容器,
133 2
|
6月前
|
Java 索引 容器
(Java)Java里JFrame窗体的基本操作(组件篇-2)
回顾 这算是JFrame窗体基本操作的组件第二篇了,上一篇说过了单选框,复选框,按钮。 在这一篇中,我会说明下拉框和列表框 什么是组件? 自行百度:java中JFrame窗体里的组件是什么? 名字都给你想好了 ( :I ) JComBox下拉框 JComBox类,就是下拉框,实例化出来后,要填写泛型<>,添加是什么数据类型的内容,泛型中就写上该数据类型; JComboBox<?> combox = new JComboBox<>(); 以下实例化下拉框的时候我泛型写的全
166 0
|
6月前
|
Java 调度 容器
(Java)JFrame窗体的基本操作(1-窗体的创建)
什么是窗体? 窗体,是某个程序,在电脑中,手机中的窗口化程序。它在非固定状态下,可以自由的变换大小。同时,窗体,也是容器,窗体这个容器可以在内部处理很多的小组件。 窗体的具体例子:例如,所有的浏览器,浏览器中网页里打开的提示框,电脑的QQ,手机上的小窗模式,都是窗体; 在本篇内容中,我们会使用JFrame和JDialog两个类,在实现java中的窗体; 在JAVA中如何创建窗体? 在java中,我们需要引入javax.swing包下的JFrame类或者JDialog类,这样才能使用两个窗体;但是,一些窗
339 0
|
6月前
|
Java 容器
(Java)Java里JFrame窗体的基础操作(组件-1)
如果不熟悉组件,可以将组件看作是某个Form表单中的表单元素,当然这只是在不熟悉组件的前提下。如果深入了解了组件,那么它有着非常多的组件,这些组件可以完善JFrame窗口的布局,以及一些功能; 本篇内容中所有的组件所用到的类全都来自于javax.swing这个包中,记得引入
123 0
|
存储 IDE Java
漂亮不是梦!Java Swing美化攻略
Java Swing 是一个为 Java 设计的 GUI 工具包,提供文本框、按钮等组件。尽管其外观可定制,通过 Look and Feel(LAF)机制改变应用风格,如 Darcula 和 FlatLaf,但现已淡出主流视野,主要应用于 IDE 领域,如 IntelliJ IDEA 和 Eclipse。相比其他 GUI 框架,Swing 的发展前景有限。
684 1
|
安全 Java API
|
前端开发 Java UED
Java中的图形用户界面编程:Swing与JavaFX的比较与应用
Java中的图形用户界面编程:Swing与JavaFX的比较与应用
1837 0
|
Java 数据安全/隐私保护
利用Java图形化界面组件Swing写一个简易的登录界面
利用Java图形化界面组件Swing写一个简易的登录界面
441 1
|
Java
编写Java程序,将JButton按钮按网格布局管理器格式放置
编写Java程序,将JButton按钮按网格布局管理器格式放置
242 0
编写Java程序,将JButton按钮按网格布局管理器格式放置