图形化用户界面-java头歌实训

图形化用户界面在这里插入图片描述

import java.awt.*;  
import javax.swing.*;  
  
public class GraphicsTester extends JFrame {  
  
    public GraphicsTester() {  
        super("Graphics Demo");  
        setSize(480, 300);  
        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);  
    }  
  
    public void paint(Graphics g) {  
        super.paint(g);  
        g.setFont(new Font("Serif", Font.BOLD, 12)); // 字体Serif,粗体,12号  
        g.setColor(Color.BLUE);  
        g.drawString("Hello, World!", 20, 50); // 在(20, 50)位置绘制字符串  
  
        g.setFont(new Font("Serif", Font.ITALIC, 14)); // 字体Serif,斜体,14号  
        g.setColor(Color.RED);  
        g.drawString("Graphics Demo", 250, 50); // 在(250, 50)位置绘制字符串  
  
        // 绘制直线  
        g.setColor(Color.GREEN);  
        g.drawLine(50, 100, 150, 100); // 从(50, 100)到(150, 100)绘制直线  
  
        // 绘制空心矩形  
        g.setColor(Color.BLACK);  
        g.drawRect(170, 50, 100, 50);  
  
        // 绘制实心矩形  
        g.setColor(Color.YELLOW);  
        g.fillRect(170, 120, 100, 50);  
        g.setColor(Color.CYAN);  

        g.drawRoundRect(200, 120, 100, 50, 20, 20); // 在(200, 120)位置绘制一个带圆角的空心矩形  
  
        // 绘制实心圆角矩形  
        g.setColor(Color.MAGENTA);  
        g.fillRoundRect(200, 180, 100, 50, 20, 20); // 在(200, 180)位置绘制一个带圆角的实心矩形  
        // 绘制标准矩形模拟3D效果(没有真正的draw3DRect和fill3DRect方法)  
        g.setColor(Color.LIGHT_GRAY);  
        g.fillRect(50, 50, 100, 50); // 底部颜色  
        g.setColor(Color.GRAY);  
        g.drawRect(50, 50, 100, 50); // 边缘颜色,模拟阴影效果  
  
        // 绘制空心椭圆  
        g.setColor(Color.BLUE);  
        g.drawOval(50, 190, 100, 50);  
  
        // 绘制实心椭圆  
        g.setColor(Color.GREEN);  
        g.fillOval(170, 190, 100, 50);  
  
        // 绘制圆弧  
        g.setColor(Color.RED);  
        g.drawArc(50, 260, 100, 50, 45, 180); // 从45度开始,画180度的圆弧  
  
        // 绘制扇形  
        g.setColor(Color.PINK);  
        g.fillArc(170, 260, 100, 50, 0, 90); // 从0度开始,画90度的扇形  
  
        // 绘制多边形  
        int[] xPoints = {50, 100, 100, 50};  
        int[] yPoints = {20, 20, 70, 70};  
        int nPoints = 4;  
        g.setColor(Color.ORANGE);  
        g.drawPolygon(xPoints, yPoints, nPoints); // 绘制空心多边形  
  
        g.setColor(Color.CYAN);  
        g.fillPolygon(xPoints, yPoints, nPoints); // 绘制实心多边形  
    }  
  
   public static void main(String args[]) {  
    try {  
        UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());  
        JFrame.setDefaultLookAndFeelDecorated(true);  
        GraphicsTester tester = new GraphicsTester();  
        tester.setVisible(true);  
    } catch (ClassNotFoundException e) {  
        // 如果Look and Feel类找不到,打印异常信息  
        e.printStackTrace();  
    } catch (UnsupportedLookAndFeelException e) {  
        // 如果Look and Feel不受支持,打印异常信息  
        e.printStackTrace();  
    } catch (InstantiationException e) {  
        // 如果Look and Feel实例化失败,打印异常信息  
        e.printStackTrace();  
    } catch (IllegalAccessException e) {  
        // 如果访问Look and Feel类受限,打印异常信息  
        e.printStackTrace();  
    }  
}
}
import java.awt.Color;
import java.awt.GradientPaint;
import java.awt.Graphics;
import java.awt.Graphics2D;
import java.awt.geom.*;
import javax.swing.*;

public class test3 extends JFrame {
    public test3() {
        super("word");     //调用基类构造方法

        setVisible(true);                  //显示窗口
        setSize(480, 250);                 //设置窗口大小
        System.out.println(getSize());
    }

    public void paint(Graphics g) {
        super.paint(g);
        // ########## Start ##########
        Graphics2D g2d = (Graphics2D) g;
        g2d.setPaint(Color.BLACK);  
        g2d.drawString("Hello, 3D Rectangle!", 50, 50);  
  
        // 模拟 draw3DRect  
        int x = 100, y = 100, width = 100, height = 50;  
        g2d.setColor(Color.LIGHT_GRAY);   
        g2d.drawRect(x, y, width, height);    
        g2d.setColor(Color.GRAY.darker());  
        g2d.drawLine(x, y + height - 1, x + width - 1, y + height - 1); 
        g2d.drawLine(x + width - 1, y, x + width - 1, y + height - 2);
  
        // 模拟 fill3DRect  
        int fillX = 150, fillY = 150, fillWidth = 100, fillHeight = 50;  
        GradientPaint gp = new GradientPaint(  
            fillX, fillY, Color.YELLOW,  
            fillX, fillY + fillHeight, Color.ORANGE, 
            true  
        );  
        g2d.setPaint(gp);  
        g2d.fillRect(fillX, fillY, fillWidth, fillHeight); 
        g2d.setColor(Color.ORANGE.darker());  
        g2d.drawLine(fillX, fillY + fillHeight, fillX + fillWidth, fillY + fillHeight); 
  
        Point2D.Float p1 = new Point2D.Float(200.f, 75.f);

        Point2D.Float p2 = new Point2D.Float(250.f, 75.f);
        GradientPaint g1 = new GradientPaint(p1, Color.red, p2, Color.yellow, true);
        Arc2D.Float arc = new Arc2D.Float(p1.x - (p2.x - p1.x) / 2, 75.f, 130.f, p2.x - p1.x, 0.f, 360.f, 2);
        
        //绘制实心矩形
        g2d.setPaint(Color.BLUE); // 设置画笔颜色为蓝色  
Rectangle2D rect = new Rectangle2D.Float(100, 100, 100, 100); // 创建一个矩形对象  
g2d.fill(rect); // 填充矩形
        // ########## End ##########
        

        sout(p1);
        sout(p2);
    }

    public void sout(Point2D.Float p) {
        System.out.println(p);
    }

    public static void main(String args[]) {
        test3 application = new test3();
        application.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    }
    
}

import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import javax.swing.event.*;

public class test4 extends javax.swing.JFrame {
    int index;
    String input;
    String choosedStr;

    public test4() {
        initComponents();
    }

    @SuppressWarnings("unchecked")
    // <editor-fold defaultstate="collapsed" desc="Generated Code">//GEN-BEGIN:initComponents
    private void initComponents() {

        jButton1 = new javax.swing.JButton();
        jLabel1 = new javax.swing.JLabel();
        textField1 = new java.awt.TextField();
        jScrollPane1 = new javax.swing.JScrollPane();
        jList1 = new javax.swing.JList<>();
        textArea1 = new java.awt.TextArea();

        setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);

        jButton1.setText("确定");
        jButton1.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jButton1ActionPerformed(evt);
            }
        });

        jLabel1.setText("input");

        
        // ########## Start ##########
        // 设置 textField1 监听
        textField1.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                textField1ActionPerformed(evt);
            }
        });
        // ########## End ##########

        jList1.setModel(new javax.swing.AbstractListModel<String>() {
            String[] strings = {"Item1", "Item2", "Item3", "Item4", "Item5"};

            public int getSize() {
                return strings.length;
            }

            public String getElementAt(int i) {
                return strings[i];
            }
        });
        // ########## Start ##########
        // 设置 jList1 鼠标监听
        jList1.addMouseListener(new java.awt.event.MouseAdapter() {
            public void mouseClicked(java.awt.event.MouseEvent evt) {
                jList1MouseClicked(evt);
            }
        });
        // ########## End ##########

        jScrollPane1.setViewportView(jList1);

        javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());
        getContentPane().setLayout(layout);
        layout.setHorizontalGroup(
                layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                        .addGroup(layout.createSequentialGroup()
                                .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                                        .addGroup(layout.createSequentialGroup()
                                                .addGap(55, 55, 55)
                                                .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                                                        .addGroup(layout.createSequentialGroup()
                                                                .addComponent(jLabel1)
                                                                .addGap(46, 46, 46)
                                                                .addComponent(textField1, javax.swing.GroupLayout.PREFERRED_SIZE, 79, javax.swing.GroupLayout.PREFERRED_SIZE))
                                                        .addComponent(jScrollPane1, javax.swing.GroupLayout.PREFERRED_SIZE, 147, javax.swing.GroupLayout.PREFERRED_SIZE))
                                                .addGap(94, 94, 94)
                                                .addComponent(textArea1, javax.swing.GroupLayout.PREFERRED_SIZE, 232, javax.swing.GroupLayout.PREFERRED_SIZE))
                                        .addGroup(layout.createSequentialGroup()
                                                .addGap(85, 85, 85)
                                                .addComponent(jButton1)))
                                .addContainerGap(63, Short.MAX_VALUE))
        );
        layout.setVerticalGroup(
                layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                        .addGroup(layout.createSequentialGroup()
                                .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                                        .addGroup(layout.createSequentialGroup()
                                                .addGap(55, 55, 55)
                                                .addComponent(jLabel1))
                                        .addGroup(layout.createSequentialGroup()
                                                .addGap(45, 45, 45)
                                                .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                                                        .addComponent(textArea1, javax.swing.GroupLayout.PREFERRED_SIZE, 228, javax.swing.GroupLayout.PREFERRED_SIZE)
                                                        .addGroup(layout.createSequentialGroup()
                                                                .addComponent(textField1, javax.swing.GroupLayout.PREFERRED_SIZE, 35, javax.swing.GroupLayout.PREFERRED_SIZE)
                                                                .addGap(32, 32, 32)
                                                                .addComponent(jScrollPane1, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)))))
                                .addGap(18, 18, 18)
                                .addComponent(jButton1)
                                .addContainerGap(146, Short.MAX_VALUE))
        );

        pack();
    }// </editor-fold>//GEN-END:initComponents

    private void textField1ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_textField1ActionPerformed
        input = textField1.getText();
    }//GEN-LAST:event_textField1ActionPerformed

    private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jButton1ActionPerformed
    String []shix={"","touge","is","nice"};
        textField1.setText(shix[index]);
        input = textField1.getText();//第一行输出input
        textField1.setText("");
        textArea1.setText(input + "\n" + "Selection is Item" + index);
        System.out.println(input + "\n" + "Selection is Item" + index);
        
    }//GEN-LAST:event_jButton1ActionPerformed

    private void jList1MouseClicked(java.awt.event.MouseEvent evt) {//GEN-FIRST:event_jList1MouseClicked
        index = jList1.getSelectedIndex() + 1;
    }//GEN-LAST:event_jList1MouseClicked

    public static void main(String args[]) {
        java.awt.EventQueue.invokeLater(new Runnable() {
            public void run() {
                new test4().setVisible(true);
            }
        });
    }

    // Variables declaration - do not modify//GEN-BEGIN:variables
    private javax.swing.JButton jButton1;
    private javax.swing.JLabel jLabel1;
    private javax.swing.JList<String> jList1;
    private javax.swing.JScrollPane jScrollPane1;
    private java.awt.TextArea textArea1;
    private java.awt.TextField textField1;
    // End of variables declaration//GEN-END:variables
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/748209.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Node.js 个人博客

关于该博客 这是一个自己搭建的简易的博客&#xff0c;用于记录一些学习笔记和技术分享。在大四毕业时完成了第一个版本&#xff0c;后续会不断完善和更新。欢迎大家提出宝贵意见和建议。 详细介绍在 blog/posts/博客/博客搭建.md 中: https://github.com/ximingx/blog/blob/m…

php goto解密脚本源码

php goto解密脚本源码 源码下载&#xff1a;https://download.csdn.net/download/m0_66047725/89426171 更多资源下载&#xff1a;关注我。

【Java Web】Servlet控制器

目录 一、Servlet简介 二、Servlet运行流程 三、Servlet开发流程 四、Servlet-api.jar包导入和Content-Type问题 4.1 Servlet-api.jar导入问题 4.2 Http报文头中的Content-Type属性 五、Servlet_url-pattern请求映射路径设置 5.1 url-pattern方式 5.2 注解方式配置servlet 六、…

Linux系统之nice命令的基本使用

Linux系统之nice命令的基本使用 一、nice命令介绍1.1 nice命令简介1.2 进程优先级介绍 二、nice命令基本语法2.1 nice命令的help帮助信息2.2 nice命令选项解释 三、nice命令的基本使用3.1 查看进程优先级3.2 使用nice启动进程3.3 提高优先级 四、注意事项 一、nice命令介绍 1.…

【unity笔记】七、Mirror插件使用

一、简介 Mirror 是一个用于 Unity 的开源多人游戏网络框架&#xff0c;它提供了一套简单高效的网络同步机制&#xff0c;特别适用于中小型多人游戏的开发。以下是 Mirror 插件的一些关键特点和组件介绍&#xff1a; 简单高效&#xff1a;Mirror 以其简洁的 API 和高效的网络…

操作系统面试篇一

很多读者抱怨计算操作系统的知识点比较繁杂&#xff0c;自己也没有多少耐心去看&#xff0c;但是面试的时候又经常会遇到。所以&#xff0c;我带着我整理好的操作系统的常见问题来啦&#xff01;这篇文章总结了一些我觉得比较重要的操作系统相关的问题比如 用户态和内核态、系统…

在OPenFast中.fst文件,.sum文件,.ech文件,.out文件,.outb文件的功能和作用

在OpenFAST中&#xff0c;5MW_Land_DLL_WTurb目录下的这些文件分别有不同的作用&#xff0c;它们用于不同的模块和目的。以下是每个文件的总结及其作用&#xff1a; 5MW_Land_DLL_WTurb.fst 作用&#xff1a;这是OpenFAST主输入文件。内容&#xff1a;该文件包含了整个仿真所需…

.NET 一款支持8种方式维持权限的工具

01阅读须知 此文所提供的信息只为网络安全人员对自己所负责的网站、服务器等&#xff08;包括但不限于&#xff09;进行检测或维护参考&#xff0c;未经授权请勿利用文章中的技术资料对任何计算机系统进行入侵操作。利用此文所提供的信息而造成的直接或间接后果和损失&#xf…

80年代怀旧动画片大全集,90年代老动画片大全集视频少儿经典下载

观看动画片时&#xff0c;儿童注意力的一般都比较稳定&#xff0c;习惯于跟随动画片的变化而变化。所以&#xff0c;动画片可以从儿童熟悉的事物入手&#xff0c;引起儿童的兴趣&#xff0c;调动儿童的积极性&#xff1b;通过动画片的感染力把情感传达给儿童&#xff0c;把儿童…

Vue-Ci搭建项目

项目创建 vue-cli 官方提供的一个脚手架,用于快速生成一个vue的项目模板;预先定义 好的目录结构及基础代码,就好比咱们在创建Maven项目时可以选择创建一个 骨架项目,这个骨架项目就是脚手架,我们的开发更加的快速; 主要的功能 ● 统一的目录结构 ● 本地调试 热部署 ● 单元…

Vue原生写全选反选框

效果 场景&#xff1a;Vue全选框在头部&#xff0c;子框在v-for循环内部。 实现&#xff1a;点击全选框&#xff0c;所有子项选中&#xff0c;再次点击取消&#xff1b;子项全选中&#xff0c;全选框自动勾选&#xff0c;子项并未全选&#xff0c;全选框不勾选&#xff1b;已选…

数据恢复篇:如何恢复丢失的Android短信?

许多用户发现自己处于重要短信意外从Android手机中删除的情况。幸运的是&#xff0c;有一些行之有效的方法可以在没有root的情况下恢复已删除的短信Android&#xff0c;这可以成为救命稻草。这些技术不需要深厚的技术知识&#xff0c;也不需要损害设备的安全性。为了帮助您摆脱…

vscode中的字符缩进问题

问题描述&#xff1a; 如图当一行代码中出现不同类型的字符时&#xff0c;使用tab缩只是插入了固定数量&#xff08;默认4&#xff09;的空格或制表符&#xff0c;仍然无法对齐。 解决方法&#xff1a; vscode找到设置&#xff0c;搜索fontFamily&#xff0c;对应输入框写入mon…

DVWA 靶场 File Upload 通关解析

前言 DVWA代表Damn Vulnerable Web Application&#xff0c;是一个用于学习和练习Web应用程序漏洞的开源漏洞应用程序。它被设计成一个易于安装和配置的漏洞应用程序&#xff0c;旨在帮助安全专业人员和爱好者了解和熟悉不同类型的Web应用程序漏洞。 DVWA提供了一系列的漏洞场…

华三中小企业组网

一、组网需求 在中小园区中&#xff0c;S5130系列或S5130S系列以太网交换机通常部署在网络的接入层&#xff0c;S5560X系列或 S6520X系列以太网交换机通常部署在网络的核心&#xff0c;出口路由器一般选用MSR系列路由器。 核心交换机配置VRRP保证网络可靠性。园区网中不同的…

selenium爬取boss直聘招聘岗位数据

selenium爬取boss直聘招聘岗位数据 一、爬取流程二、完整代码一、爬取流程 先来看一下爬取到的数据情况: 再来看一下boss直聘的页面,这时需要我们已经完成了城市的选择,将岗位名称输入到搜索框中,点击搜索之后切换到第2页。这时我们将url复制。第2页的url为:https://www.…

grpc学习golang版( 四、多服务示例)

系列文章目录 第一章 grpc基本概念与安装 第二章 grpc入门示例 第三章 proto文件数据类型 第四章 多服务示例 文章目录 一、前言二、定义proto文件三、编写server服务端四、编写Client客户端五、测试六、示例代码 一、前言 多服务&#xff0c;即一个rpc提供多个服务给外界调用…

基于requests模块爬取网易云歌曲评论并制作热词云图(2024七月最新可用,超详细讲解,从零开始完成项目,python爬虫高分大作业)

本实践大作业要求 本次实践大作业主要要求主要包括&#xff1a; 1、选择一个热点或者你感兴趣的主题作为本次爬虫实践作业要完成的任务。 2、为了完成本次任务&#xff0c;需要确定从网上爬取的数据对象与范围。 3、利用python及网络爬虫相关技术实现从网上爬取相应内容数据。 …

YOLOv8改进 | 添加注意力篇 | 结合Mamba注意力机制MLLA助力YOLOv8有效涨点(全网独家首发)

一、本文介绍 本文给大家带来的改进机制是结合号称超越Transformer架构的Mamba架构的最新注意力机制MLLA&#xff0c;本文将其和我们YOLOv8进行结合&#xff0c;MLLA&#xff08;Mamba-Like Linear Attention&#xff09;的原理是通过将Mamba模型的一些核心设计融入线性注意力…

Renesas MCU使用SCI_I2C驱动HS3003

目录 概述 1 软硬件介绍 1.1 软件版本信息 1.2 认识HS3003 1.2.1 HS3003特性 1.2.2 HS3003寄存器 1.2.2.1 温湿度数据寄存器 1.2.2.2 参数寄存器 1.2.2.3 一个参数配置Demo 1.2.3 温湿度值转换 1.2.4 HS3003应用电路 1.2.4.1 PIN引脚定义 1.2.4.2 sensor 应用电路 …