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日

相关文章

  • 详解springboot springsecuroty中的注销和权限控制问题

    详解 Spring Boot Spring Security 中的注销和权限控制问题 前言 Spring Boot Spring Security 是一个非常常用的技术组合,它们可以提供很好的安全性,和身份认证、授权、限制等重要功能,但是在实际开发中可能会遇到注销和权限控制相关的问题,需要我们了解并深入研究。 正文 注销功能 注销功能是常见的需求,用户在退出…

    Java 2023年6月3日
    00
  • JavaSpringBoot报错“ClassNotFoundException”的原因和处理方法

    原因 “ClassNotFoundException” 错误通常是以下原因引起的: 类路径不正确:如果您的类路径不正确,则可能会出现此错误。在这种情况下,需要检查您的类路径并确保它们正确。 缺少依赖项:如果您的依赖项缺失,则可能会出现此错误。在这种情况下,需要检查您的依赖项并确保它们存在。 解决办法 以下是解决 “ClassNotFoundException…

    Java 2023年5月4日
    00
  • 带你入门Java的集合

    带你入门Java的集合 1. Java集合概述 Java集合是Java程序员处理数据时最常用的工具之一,它可以用于存储不同类型的数据,同时通过各种算法对数据进行操作和处理,这大大简化了Java编程的过程。Java集合是Java类库中的一部分,它主要包括两种类型:一种是Collection,另一种是Map。Collection类集合是一组元素的集合,而Map集…

    Java 2023年5月24日
    00
  • 教你利用SpringBoot写一个属于自己的Starter

    教你利用SpringBoot写一个属于自己的Starter Spring Boot Starter是一种用于简化Spring应用程序配置的机制。它可以将一组相关的依赖项打包到一个单独的模块中,并提供自动配置和其他功能。本文将详细介绍如何编写一个属于自己的Spring Boot Starter,并提供两个示例。 创建Starter项目 首先,我们需要创建一个M…

    Java 2023年5月15日
    00
  • Java泛型extends及super区别实例解析

    Java中的泛型可以指定一个类型参数,例如List,这表示这个List只能添加String类型的元素,否则编译器会报错。此外,泛型中还有一个重要的概念:泛型通配符。泛型通配符可以用来表示某个类的任意类型参数,例如List<?>,这表示这个List可以添加任意类型的元素。 当我们使用泛型通配符时,有时候需要限制可以添加的元素类型,这时可以使用ext…

    Java 2023年5月26日
    00
  • 使用Spring自身提供的地址匹配工具匹配URL操作

    使用Spring自身提供的地址匹配工具主要用于匹配URL,实现对请求的访问控制。下面是使用Spring提供的地址匹配工具匹配URL的完整攻略: 1. 导入相关的依赖 Spring框架提供了对地址匹配的支持,需要在项目中导入相应的依赖,包括 Spring Web、Spring Security 等。 <dependencies> <depen…

    Java 2023年6月15日
    00
  • Tomcat Cannot assign requested address: JVM_Bind 非端口占用冲突

    当运行Tomcat时,可能会出现以下错误: java.net.BindException: Cannot assign requested address: JVM_Bind 这个错误通常意味着Tomcat无法将其绑定到特定的IP地址和端口。以下是可能导致这个错误的几种原因,以及如何解决它们。 原因1: 该端口已被占用 此错误可能是因为要绑定的端口已经被其他…

    Java 2023年5月19日
    00
  • 手把手教你SpringBoot过滤器N种注册方式

    手把手教你SpringBoot过滤器N种注册方式 SpringBoot中过滤器(Filter)是一个常用的技术,它可以在执行控制器前或后,对请求或响应进行拦截,完成一些特定的功能,例如安全控制、日志记录和数据的预处理等。在SpringBoot中,有多种方式注册过滤器,下面介绍其中的N种方法: 方式一:通过FilterRegistrationBean注册过滤器…

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