JAVA基础-GUI

JAVA基础-GUI攻略

1. GUI概述

GUI即图形用户界面(Graphical User Interface),是用户与操作系统的交互界面。在Java中,使用Java Swing和JavaFX等框架来编写GUI应用程序。

Swing是一套Java原生的GUI控件,可以在几乎所有的Java平台上运行。JavaFX是Java平台的一个富客户端平台,提供了可扩展性和渲染性能更高的GUI控件。

2. Java Swing

在Java Swing中,一个GUI程序的主要组成部分包括:

2.1 JFrame

JFrame是一个顶层窗口,通常作为一个GUI程序的主窗口。可以使用JFrame的构造方法创建一个新的窗口,并设置标题、大小、位置等属性。

示例:

import javax.swing.JFrame;
public class MyFrame extends JFrame {
    public MyFrame() {
        setTitle("My Frame");
        setSize(300, 200);
        setLocationRelativeTo(null);
        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    }
    public static void main(String[] args) {
        MyFrame frame = new MyFrame();
        frame.setVisible(true);
    }
}

2.2 JPanel

JPanel是一种容器,可以用来组合其他GUI控件。可以使用JPanel的构造方法来创建一个新的JPanel,并将它添加到JFrame中。

示例:

import javax.swing.JFrame;
import javax.swing.JPanel;
public class MyPanel extends JPanel {
    public MyPanel() {
        add(new JLabel("Hello, world!"));
    }
    public static void main(String[] args) {
        JFrame frame = new JFrame("My Frame");
        MyPanel panel = new MyPanel();
        frame.add(panel);
        frame.setSize(300, 200);
        frame.setLocationRelativeTo(null);
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        frame.setVisible(true);
    }
}

2.3 JButton

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 MyButton extends JButton implements ActionListener {
    public MyButton(String label) {
        super(label);
        addActionListener(this);
    }
    public void actionPerformed(ActionEvent e) {
        System.out.println("你点击了按钮");
    }
    public static void main(String[] args) {
        JFrame frame = new JFrame("My Frame");
        JPanel panel = new JPanel();
        MyButton button = new MyButton("Click Me!");
        panel.add(button);
        frame.add(panel);
        frame.setSize(300, 200);
        frame.setLocationRelativeTo(null);
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        frame.setVisible(true);
    }
}

3. JavaFX

在JavaFX中,一个GUI程序的主要组成部分包括:

3.1 Stage

Stage是一个顶层窗口,通常作为一个GUI程序的主窗口。可以使用Stage的构造方法创建一个新的窗口,并设置标题、大小、位置等属性。

示例:

import javafx.application.Application;
import javafx.scene.Scene;
import javafx.scene.control.Label;
import javafx.stage.Stage;
public class MyStage extends Application {
    public void start(Stage stage) {
        Label label = new Label("Hello, world!");
        Scene scene = new Scene(label, 300, 200);
        stage.setTitle("My Stage");
        stage.setScene(scene);
        stage.show();
    }
    public static void main(String[] args) {
        launch(args);
    }
}

3.2 Pane

Pane是一种容器,可以用来组合其他GUI控件。可以使用Pane的构造方法来创建一个新的Pane,并将它添加到Stage中。

示例:

import javafx.application.Application;
import javafx.scene.Scene;
import javafx.scene.control.Label;
import javafx.scene.layout.StackPane;
import javafx.stage.Stage;
public class MyPane extends Application {
    public void start(Stage stage) {
        Label label = new Label("Hello, world!");
        StackPane pane = new StackPane();
        pane.getChildren().add(label);
        Scene scene = new Scene(pane, 300, 200);
        stage.setTitle("My Pane");
        stage.setScene(scene);
        stage.show();
    }
    public static void main(String[] args) {
        launch(args);
    }
}

3.3 Button

Button是一种按钮,可以响应用户的点击操作。可以使用Button的构造方法来创建一个新的按钮,并指定按钮的标签、事件监听器等属性。

示例:

import javafx.application.Application;
import javafx.event.ActionEvent;
import javafx.event.EventHandler;
import javafx.scene.Scene;
import javafx.scene.control.Button;
import javafx.scene.layout.StackPane;
import javafx.stage.Stage;
public class MyButton extends Application {
    public void start(Stage stage) {
        Button button = new Button("Click Me!");
        button.setOnAction(new EventHandler<ActionEvent>() {
            public void handle(ActionEvent event) {
                System.out.println("你点击了按钮");
            }
        });
        StackPane pane = new StackPane();
        pane.getChildren().add(button);
        Scene scene = new Scene(pane, 300, 200);
        stage.setTitle("My Button");
        stage.setScene(scene);
        stage.show();
    }
    public static void main(String[] args) {
        launch(args);
    }
}

4. 总结

Java Swing和JavaFX都是Java GUI编程的重要框架。使用Swing和JavaFX,我们可以方便地创建各种GUI程序,并添加窗口、容器、按钮等控件。以上是Java基础-GUI的完整攻略,包括了JFrame、JPanel、JButton以及Stage、Pane、Button的使用示例。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:JAVA基础-GUI - Python技术站

(0)
上一篇 2023年5月19日
下一篇 2023年5月19日

相关文章

  • Java连接Sql数据库经常用到的操作

    Java连接Sql数据库操作攻略 Java连接Sql数据库操作可以分为以下几个步骤: 加载数据库驱动 连接数据库 创建Statement对象 执行SQL语句 处理结果 下面详细讲解这几个步骤。 1. 加载数据库驱动 在连接Sql数据库之前,首先需要加载数据库驱动。例如,如果想要连接MySQL数据库,可以使用以下代码加载驱动: Class.forName(&q…

    Java 2023年6月1日
    00
  • Java JDBC自定义封装工具类的步骤和完整代码

    Java JDBC是Java中进行关系型数据库操作的标准方式,它提供了丰富的API让我们灵活处理数据库的连接、操作和结果集。但是,使用Java JDBC进行开发时没有封装的话会显得冗长、繁琐,因此自定义封装工具类可以提高工作效率并提高代码可读性和可维护性。 下面是Java JDBC自定义封装工具类的步骤和完整代码攻略: 1.建立数据库连接 public cl…

    Java 2023年6月16日
    00
  • java实现简单的图书借阅系统

    Java实现简单的图书借阅系统 一、需求分析 在设计图书借阅系统之前,我们需要进行需求分析,了解系统需要实现哪些功能。 管理员功能 添加图书:管理员可以添加图书到系统中,包括图书名称、作者、出版社、ISBN码等信息。 删除图书:管理员可以删除系统中的图书。 修改图书信息:管理员可以修改系统中的图书信息。 查询图书:管理员可以查询系统中的图书列表,包括已借出和…

    Java 2023年5月19日
    00
  • JUC中的wait与notify方法实现原理详解

    JUC中的wait与notify方法实现原理详解 JUC(Java Util Concurrent)是Java中用于处理多线程编程的库,其中包含了大量的线程处理类,其中常用的类之一是Object类中的wait方法和notify方法。本文将详细讲解JUC中的wait与notify方法实现原理。 wait方法的实现原理 wait方法是Object类中的一个方法,…

    Java 2023年5月26日
    00
  • SpringBoot整合Apache Pulsar教程示例

    SpringBoot整合Apache Pulsar教程示例 本教程将介绍如何使用SpringBoot框架和Apache Pulsar进行消息队列的集成,我们将使用两个不同的示例进行演示,以展示如何将消息发送到Pulsar,并如何从Pulsar中接收消息。 示例1: 发送消息到Pulsar 我们首先来看如何使用SpringBoot和Pulsar在代码中发送消息…

    Java 2023年5月20日
    00
  • 利用java监听器实现在线人数统计

    下面是利用Java监听器实现在线人数统计的完整攻略: 1. 创建监听器类 为了监听用户的登录和退出行为,我们需要创建一个实现了ServletContextListener接口的监听器类。这个类中需要实现两个方法:contextInitialized和contextDestroyed,其中contextInitialized方法会在应用启动时被调用,而cont…

    Java 2023年6月15日
    00
  • 初识Spring Boot框架和快速入门

    下面我就来详细讲解“初识SpringBoot框架和快速入门”的完整攻略。 一、什么是Spring Boot? Spring Boot是一个开源的框架,它是基于Spring 框架的基础上创建的一个快速开发的框架。它封装了大量的Spring框架相关的组件和工具,简化了Spring应用的初始化和开发过程,大大提高了开发效率和开发体验。 二、Spring Boot的…

    Java 2023年5月15日
    00
  • 使用java生成json时产生栈溢出错误问题及解决方案

    使用Java生成JSON时如果数据量较大、层次较深,容易出现栈溢出错误。本文将介绍栈溢出的原因及两种解决方案。 问题原因 生成JSON时,Java使用递归方式遍历数据结构,将其转换为JSON格式。如果数据量很大,层次较深,那么递归将产生很多层次的调用,导致栈空间不足,产生栈溢出错误。 解决方案1:调整栈空间大小 Java虚拟机中,栈大小默认为1MB,可通过设…

    Java 2023年5月20日
    00
合作推广
合作推广
分享本页
返回顶部