首页 > 编程语言 >Java Swing

Java Swing

时间:2023-12-09 22:33:43浏览次数:33  
标签:JFrame Java JButton Swing 组件 import public

Swing在Java中的使用:创建图形用户界面(GUI)的步骤和技巧

Swing是Java的一个图形用户界面(GUI)工具包,它提供了创建窗口、对话框、按钮等GUI元素所需要的类和方法。下面我们将介绍Swing的基本使用方法,包括创建窗口、添加组件、事件处理等。

一、创建窗口

创建Swing应用程序的第一步是创建一个JFrame对象,该对象代表了应用程序的主窗口。JFrame类是Swing中的顶层容器,它可以容纳其他的GUI组件。

import javax.swing.*;  
  
public class MyFrame extends JFrame {  
    public MyFrame() {  
        setTitle("My Frame"); // 设置窗口标题  
        setSize(400, 300); // 设置窗口大小  
        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); // 设置关闭窗口时退出程序  
        setVisible(true); // 设置窗口可见  
    }  
}

二、添加组件

创建完窗口之后,我们需要向其中添加一些组件,比如按钮、文本框等。这些组件可以通过JFrame的add方法添加。

import javax.swing.*;  
import java.awt.*;  
  
public class MyButton extends JFrame {  
    public MyButton() {  
        setTitle("My Button");  
        setSize(400, 300);  
        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);  
        setVisible(true);  
        setLayout(new FlowLayout()); // 设置布局方式为FlowLayout  
        JButton button = new JButton("Click Me!"); // 创建一个按钮  
        add(button); // 将按钮添加到窗口中  
    }  
}

三、事件处理

在Swing中,每个组件都可以注册事件监听器,当该组件发生事件时,监听器中的事件处理方法就会被调用。例如,我们可以为按钮添加一个鼠标单击事件的监听器。

import javax.swing.*;  
import java.awt.*;  
import java.awt.event.*;  
  
public class MyButton extends JFrame implements ActionListener {  
    public MyButton() {  
        setTitle("My Button");  
        setSize(400, 300);  
        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);  
        setVisible(true);  
        setLayout(new FlowLayout());  
        JButton button = new JButton("Click Me!");  
        button.addActionListener(this); // 注册鼠标单击事件监听器  
        add(button);  
    }  
    public void actionPerformed(ActionEvent e) { // 实现ActionListener接口中的方法  
        if (e.getSource() == button) { // 判断事件源是否是按钮  
            System.out.println("Button clicked!"); // 输出提示信息  
        }  
    }  
}

四、布局管理

在Swing中,布局管理是一个重要的概念。布局管理器用于决定组件在容器中的位置和大小。Swing提供了多种布局管理器,包括FlowLayout、BorderLayout、GridLayout等。

import javax.swing.*;  
import java.awt.*;  
  
public class MyLayout extends JFrame {  
    public MyLayout() {  
        setTitle("My Layout");  
        setSize(400, 300);  
        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);  
        setVisible(true);  
        setLayout(new BorderLayout()); // 设置布局方式为BorderLayout  
        JButton button1 = new JButton("North");  
        JButton button2 = new JButton("South");  
        JButton button3 = new JButton("East");  
        JButton button4 = new JButton("West");  
        JButton button5 = new JButton("Center");  
        add(button1, BorderLayout.NORTH); // 将按钮添加到不同的区域  
        add(button2, BorderLayout.SOUTH);  
        add(button3, BorderLayout.EAST);  
        add(button4, BorderLayout.WEST);  
        add(button5, BorderLayout.CENTER);  
    }  
}

五、自定义组件

除了使用Swing提供的标准组件之外,我们还可以自定义组件的外观和行为。例如,我们可以创建一个继承自JPanel的自定义面板,并在其中绘制一些图形。

import javax.swing.*;  
import java.awt.*;  
  
public class MyPanel extends JPanel { // 自定义面板类继承自JPanel  
    public void paintComponent(Graphics g) { // 重写paintComponent方法,在其中绘制图形  
        super.paintComponent(g);  
        g.setColor(Color.RED); // 设置绘图颜色为红色  
        g.fillRect(50, 50, 100, 100); // 绘制一个矩形  
    }  
}

六、总结

Swing是Java中用于创建图形用户界面(GUI)的重要工具包。通过JFrame类可以创建窗口,通过添加组件可以为窗口添加功能,通过事件处理可以响应用户的交互操作,通过布局管理可以控制组件的位置和大小,通过自定义组件可以扩展Swing的功能。掌握了这些基本使用方法之后,我们就可以创建出各种丰富多彩的Swing应用程序了。

标签:JFrame,Java,JButton,Swing,组件,import,public
From: https://www.cnblogs.com/kandh/p/17891929.html

相关文章

  • Java之包装类的算法小题的练习
     算法小题练习一:需求:键盘录入一些1~10日之间的整数,并添加到集合中。直到集合中所有数据和超过200为止。代码示例:publicclassTest1{publicstaticvoidmain(String[]args){/*键盘录入一些1~10日之间的整数,并添加到集合中。直到集合中所有数据和超......
  • JAVA - Collections
    publicclassTest1{publicstaticvoidmain(String[]args){Students=newStudent("张三",18,"唱歌");Students1=newStudent("李四",27,"跳舞");Students2=newStudent("王五",26,&q......
  • JavaScript 学习
    变量声明和数据类型varname='John';letage=25;constPI=3.14;//数据类型:字符串、数字、布尔值//var声明(ES5),let和const声明(ES6)var、let和const是JavaScript中声明变量的关键字。var在ES5中使用,let和const在ES6中引入,具有块级作用域,能避免变量提升的问题......
  • Java打印进度条
    packagecom.shuwei.dai.utils.bitmap;importjava.util.Collections;publicclassStepProgressBarExample{publicstaticvoidmain(String[]args){simulateStep("Step1:Initializing",10);simulateStep("Step2:Download......
  • java.Text.ParseException:Unparseable date:“undefined 00:00:00“
    request.getParameter()获取的日期要toString一下再parse,否则就会报这个异常。if(page.getParams().get("startTime")!=null){Datestart=DateParser.parse(page.getParams().get("startTime").toString(),true);page.getParams(......
  • Java 中日期String类型与Date类型相互转化
    JavaString类型转换成Date日期类型插入数据库时,存入当前日期,需要格式转换importjava.text.SimpleDateFormat;formatter=newSimpleDateFormat("yyyy-MM-dd");Stringdate=formatter.format(newDate());//格式化数据,取当前时间结果为2014-10-30String格式的数据转化成......
  • Java第六课_二维数组
    1.二维数组增强for循环//增强for循环:for(数据类型元素名:数组/集合){}//注意:增强的for循环中是没有索引值//属于是针对数组的简介写法int[]a={1,2,3};for(intdate:a){//只需数据类型即可,无需[]......
  • java-blog3
    一、前言1、知识点:主要是java中类与类之间的关系和类图的构建以及对数据的处理2、题量:不多3、难度:难度在不断的变大,每一题所花的时间也在不断的增加二、设计与分析:7-3课程成绩统计程序-2分数60全屏浏览题目切换布局作者 蔡轲单位 南昌航空大学......
  • Java集合操作:UnsupportedOpertionExcepion产生的原因以及解决办法
    Java集合操作:UnsupportedOpertionExcepion产生的原因以及解决办法  问题产生:java.lang.UnsupportedOperationException  问题定位:在通过mybatis获取分页列表的时候写了下面这段代码 1//分页获取列表2PageResult<InsuranceBeneficiaryDO>pageList=this.insuranc......
  • Java 方法体
    1抽象方法{2345}1构造方法{2例{3classAAAA{4privateintp=10;//new的时候赋值一次56publicAAAA(){7System.out.println(p);//先执行privateintp=10在执行System.o......