java使用swing制作桌面图形应用的实例教程

这篇具有很好参考价值的文章主要介绍了java使用swing制作桌面图形应用的实例教程。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

本篇文章主要讲解,java编程语言通过swing制作桌面图形应用的实例教程,通过一个简单的个人信息提交表单界面,让你了解swing的布局管理、窗口图标设置、编译和运行以及窗口菜单的设置。
日期:2023年8月25日

实际效果

java使用swing制作桌面图形应用的实例教程,Java,java,python,开发语言
弹出新窗口帮助文档界面:
java使用swing制作桌面图形应用的实例教程,Java,java,python,开发语言
说明:设置新窗口图标和主窗口一致,也可在新窗口设置布局,同主窗口的配置方式。

代码实例

import javax.swing.*;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.Desktop;
import java.net.URI;

public class MainWindow extends JFrame {
    public MainWindow() {
        setTitle("简易swing个人信息填写,多菜单界面demo实例");
        setSize(400, 300);
        setDefaultCloseOperation(EXIT_ON_CLOSE);
        setLayout(new BorderLayout());
        setLocation(200, 100);

        // 设置任务栏图标
        Image taskbarIcon = Toolkit.getDefaultToolkit().getImage("E:\\develop\\cursor\\java\\icon.png");
        setIconImage(taskbarIcon);


        // 创建菜单栏
        JMenuBar menuBar = new JMenuBar();
        setJMenuBar(menuBar);

        // 创建官网菜单项
        JMenuItem websiteMenuItem = new JMenuItem("官网");
        websiteMenuItem.addActionListener(new ActionListener() {
            @Override
            public void actionPerformed(ActionEvent e) {
                openWebsite();
            }
        });

        // 创建帮助菜单项
        JMenuItem helpMenuItem = new JMenuItem("帮助");
        helpMenuItem.addActionListener(new ActionListener() {
            @Override
            public void actionPerformed(ActionEvent e) {
                showHelpWindow();
            }
        });

        // 将菜单项添加到菜单栏
        JMenu menu = new JMenu("菜单");
        menuBar.add(menu);
        menu.add(websiteMenuItem);
        menu.add(helpMenuItem);

        // 创建个人信息填写表单
        JPanel formPanel = new JPanel(new GridBagLayout());
        GridBagConstraints constraints = new GridBagConstraints();
        constraints.anchor = GridBagConstraints.WEST;

        JLabel nameLabel = new JLabel("姓名:");
        JTextField nameTextField = new JTextField(20);

        JLabel genderLabel = new JLabel("性别:");
        JRadioButton maleRadioButton = new JRadioButton("男");
        JRadioButton femaleRadioButton = new JRadioButton("女");
        ButtonGroup genderButtonGroup = new ButtonGroup();
        genderButtonGroup.add(maleRadioButton);
        genderButtonGroup.add(femaleRadioButton);

        JLabel hobbyLabel = new JLabel("爱好:");
        JCheckBox javaCheckBox = new JCheckBox("Java");
        JCheckBox pythonCheckBox = new JCheckBox("Python");
        JCheckBox cSharpCheckBox = new JCheckBox("C#");

        JLabel introLabel = new JLabel("简介:");
        JTextArea introTextArea = new JTextArea(5, 20);

        JLabel dropdownLabel = new JLabel("下拉:");
        String[] dropdownOptions = {"不内卷", "规避竞争的最好方法是避免竞争", "养生上班才好"};
        JComboBox<String> dropdownComboBox = new JComboBox<>(dropdownOptions);

        JButton submitButton = new JButton("提交");
        submitButton.addActionListener(new ActionListener() {
            @Override
            public void actionPerformed(ActionEvent e) {
                submitForm(nameTextField.getText(), maleRadioButton.isSelected(),
                        javaCheckBox.isSelected(), pythonCheckBox.isSelected(),
                        cSharpCheckBox.isSelected(), introTextArea.getText(),
                        dropdownComboBox.getSelectedItem().toString());
            }
        });
		//设置布局
        constraints.gridx = 0;//设置x坐标
        constraints.gridy = 0;//设置y坐标
        formPanel.add(nameLabel, constraints);//添加组件

        constraints.gridx = 1;
        constraints.gridwidth = 3;//设置宽度
        formPanel.add(nameTextField, constraints);

        constraints.gridx = 0;
        constraints.gridy = 1;
        formPanel.add(genderLabel, constraints);

        constraints.gridx = 1;
        formPanel.add(maleRadioButton, constraints);

        constraints.gridx = 2;
        formPanel.add(femaleRadioButton, constraints);

        constraints.gridx = 0;
        constraints.gridy = 2;
        formPanel.add(hobbyLabel, constraints);

        constraints.gridx = 1;
        constraints.gridwidth = 1;
        formPanel.add(javaCheckBox, constraints);

        constraints.gridx = 2;
        constraints.gridwidth = 1;
        formPanel.add(pythonCheckBox, constraints);

        constraints.gridx = 3;
        constraints.gridwidth = 1;
        formPanel.add(cSharpCheckBox, constraints);

        constraints.gridx = 0;
        constraints.gridy = 3;
        formPanel.add(introLabel, constraints);

        constraints.gridx = 1;
        constraints.gridwidth = 3;
        formPanel.add(introTextArea, constraints);

        constraints.gridx = 0;
        constraints.gridy = 4;
        formPanel.add(dropdownLabel, constraints);

        constraints.gridx = 1;
        constraints.gridwidth = 3;
        formPanel.add(dropdownComboBox, constraints);

        constraints.gridx = 5;
        constraints.gridy = 6;
        constraints.gridwidth = 4;
        formPanel.add(submitButton, constraints);

        add(formPanel, BorderLayout.CENTER);

        setVisible(true);
    }
	//打开官网
    private void openWebsite() {
        int result = JOptionPane.showConfirmDialog(this, "点击确认即可打开www.youqiong.net", "打开官网", JOptionPane.OK_CANCEL_OPTION, JOptionPane.INFORMATION_MESSAGE);
        if (result == JOptionPane.OK_OPTION) {
            try {
                URI uri = new URI("https://www.youqiong.net");
                Desktop desktop = Desktop.getDesktop();
                if (desktop.isSupported(Desktop.Action.BROWSE)) {
                    desktop.browse(uri);
                }
            } catch (Exception e) {
                e.printStackTrace();
            }
        }
    }
	//显示新窗口
    private void showHelpWindow() {
        JFrame helpWindow = new JFrame();
        JScrollPane scrollPane = new JScrollPane();
        JTextPane textPane = new JTextPane();
        StringBuilder content = new StringBuilder();
        for (int i = 1; i <= 200; i++) {
            content.append(i).append("\n");
        }
        textPane.setText(content.toString());
        scrollPane.setViewportView(textPane);
        helpWindow.add(scrollPane);
        helpWindow.setTitle("帮助窗口");
        helpWindow.setSize(400, 300);
        helpWindow.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
        helpWindow.setVisible(true);
    }
	//弹出表单信息
    private void submitForm(String name, boolean isMale, boolean hasJavaHobby,
                            boolean hasPythonHobby, boolean hasCSharpHobby,
                            String intro, String selectedOption) {
        JOptionPane.showMessageDialog(this, "姓名:" + name + "\n"
                + "性别:" + (isMale ? "男" : "女") + "\n"
                + "爱好:" + (hasJavaHobby ? "Java " : "") + "\n"
                + "      " + (hasPythonHobby ? "Python " : "") + "\n"
                + "      " + (hasCSharpHobby ? "C#" : "") + "\n"
                + "个人简介:" + intro + "\n"
                + "下拉框选项:" + selectedOption, "个人基本信息", JOptionPane.INFORMATION_MESSAGE);
    }
	//实例化窗口
    public static void main(String[] args) {
        SwingUtilities.invokeLater(new Runnable() {
            @Override
            public void run() {
                new MainWindow();
            }
        });
    }
}

执行代码说明

1.记得先编译,中文用utf-8


javac -encoding UTF-8 MainWindow.java

2.执行命令输入如下即可

java MainWindow

end:输入后按回车即可弹出最初的窗口效果。文章来源地址https://www.toymoban.com/news/detail-673868.html

到了这里,关于java使用swing制作桌面图形应用的实例教程的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 《java 桌面软件开发》swing 以鼠标为中心放大缩小移动图片

    swing 使用Graphic2D 绘制图片,要实现对图片进行缩放和自由拖动。 1.以鼠标所在的位置为中心,滚轮控制缩放 2.缩放后再支持鼠标拖动。 基本原理: 利用scale() 函数。进行缩放。但是要注意的地方是,如果是在 public void paintComponent(Graphics g) 里面通过这个Graphics g 参数获取gra

    2024年02月06日
    浏览(52)
  • Java Swing花样玩法:教你用代码制作六一儿童节的精美贺卡(简单版)

    ✨ 博主: 命运之光 ✨ 专栏: Java经典程序设计 前言:这篇博客在打开可能会自动播放视频,视频有音乐,请及时静音哈🙂   目录 ✨前言 ✨引言 ✨简单介绍一下Javaswing这项技术简单介绍一下Javaswing这项技术(选读,感兴趣的可以了解一下哈(●\\\'◡\\\'●)) ✨程序展示 ✨视频

    2024年02月07日
    浏览(40)
  • 如何使用Java进行桌面应用的开发?

    使用Java进行桌面应用的开发可以借助JavaFX或Swing框架。下面为你提供一些基本的步骤: 安装Java开发工具包(JDK):首先,确保你已经安装了Java开发工具包(JDK),并正确配置了环境变量。 选择GUI框架:Java提供了两个主要的桌面GUI框架:JavaFX和Swing。JavaFX是Oracle推荐的最新的

    2024年02月09日
    浏览(46)
  • Python开发第一步:如何制作一个简单的桌面应用

    大家好,我是baifagg, 一个热爱Python的编程爱好者。 今天我们来学习一下, 如何用Python制作一个简单的桌面应用程序。 虽然桌面应用程序开发并不是Python的主要领域, 但是它也有很多优秀的库和工具, 可以帮助我们快速实现想法。 所以不妨跟我一起来探索一下Python的魅力

    2024年02月15日
    浏览(48)
  • java swing(GUI) MySQL实现的视频播放器系统源码+运行教程

    今天给大家演示一下由Java swing实现的一款简单的多媒体播放器,项目源码我会放在我的网站上,并配有视频配置教程,保证运行起来的。这个小播放器实现了视频、音频文件的播放、暂停、快进、快退、停止、全屏等功能,还有历史记录功能,调用的是vcl库的播放内核。接下

    2023年04月08日
    浏览(38)
  • 【新手教程】如何在Win11上制作一个模仿MacOS的桌面?

    起因是早上蹲坑的时候偶然间在小红书上刷到一篇文章,看了下效果图感觉还不错,所以按照文章作者的流程来了一遍。过程中也遇到了一些小问题,正好放假了有空就写一篇文章记录一下。先放一下效果: Dock栏是啥玩意?作为一个不熟悉苹果操作系统的用户,没见过这个

    2024年02月06日
    浏览(37)
  • Java——一个使用Java Swing实现的考试系统的窗体类

    这是一个使用Java Swing实现的考试系统的窗体类。主要包括菜单栏、题目内容、选项、按钮等组件,并且实现了开始考试、上一题、下一题和提交按钮的功能。 在窗体的构造方法中,设置了窗体的标题、大小和位置,并调用了init方法和setVisible方法。init方法用于设置初始界面

    2024年02月11日
    浏览(42)
  • 【Java】Java使用Swing实现一个模拟计算器(有源码)

       📝个人主页:哈__ 期待您的关注  今天翻了翻之前写的代码,发现自己之前还写了一个计算器,今天把我之前写的代码分享出来。  我记得那会儿刚学不会写,写的乱七八糟,但拿来当期末作业还是不错的哈哈。 直接上源码,后上讲解。 计算器上的按键不少,我们都定

    2024年04月11日
    浏览(62)
  • 如何使用VNC实现Win系统远程桌面Ubuntu图形化界面【内网穿透】

    前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。点击跳转到网站 前言 实现ubuntu 系统桌面级别的远程连接,需要在ubuntu 系统中安装vnc,既然是桌面,前提是需要ubuntu 带有图形化界面,如果没有,可以执行以下命令安装图形化界面 1. ubun

    2024年01月19日
    浏览(46)
  • PySimpleGUI:使用 Python 轻松制作一个图形界面(GUI)

    大家好,GUI(图形用户界面),顾名思义就是用图形的方式,来显示计算机操作的界面,更加方便且直观。 一个好看又好用的GUI,可以大大提高大家的使用体验,提高效率。比如你想开发一个计算器,如果只是一个程序输入,输出窗口的话,是没有用户体验的。所以开发一个图

    2024年02月16日
    浏览(55)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包