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

news2025/4/21 20:32:53

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

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
}

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Windows 10,11 Server 2022 Install Docker-Desktop

docker 前言 Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的镜像中,然后发布到任何流行的 Linux或Windows 机器上,也可以实现虚拟化。容器是完全使用沙箱机制,相互之间不会有任何接口。 docker-compose Compose 是用于定义和运行…

利用viztracer进行性能分析和优化

上一篇文章&#xff0c;我们详细讲解了scalene这个性能分析和优化工具的使用流程&#xff1b;今天&#xff0c;我们将深入探讨另一个性能分析和优化工具——viztracer。 什么是viztracer&#xff1f; viztracer是一个非常强大的分析器&#xff0c;可以生成详细的性能报告和可…

Spring AI 实现调用openAi 多模态大模型

什么是多模态? 多模态(Multimodal)指的是数据或信息的多种表现形式。在人工智能领域,我们经常会听到这个词,尤其是在近期大型模型(如GPT-4)开始支持多模态之后。 模态:模态是指数据的一种形式,例如文本、图像、音频等。每一种形式都是一种模态。多模态:多模态就是将…

VMware Windows sever 虚拟机互联网连接配置

一、VMware配置 1、虚拟网络编辑 从左上角 编辑→虚拟网络编辑器 进入 2、配置NAT模式 配置的子网IP&#xff0c;在虚拟机中获取到的ip跟子网IP的前三个是一样的 1.配置网关 2.配置DHCP设置 这个主要是分配ip最后一位获取的区间 3、虚拟机配置 二、Windows Server 虚拟机配置…

Ubuntu下包管理命令dpkg安装deb软件包的示例与汇总

一、选定待安装的deb软件包&#xff1a; 二、dpkg安装chrome浏览器的示例&#xff1a; 三、汇总dpkg包管理命令格式&#xff1a;

电脑开机之后屏幕没有任何显示?怎么检查?

前言 最近有很多小伙伴来咨询&#xff0c;自己的电脑开机之后&#xff0c;屏幕真的是一点显示都没有&#xff0c;只有CPU风扇在转。 这个情况小白经常经常经常遇到&#xff0c;所以写一篇关于这个问题的排查教程。按照这个教程来排查&#xff0c;除非真的是硬件损坏&#xff…

2024年高级会计职称题库。高效备考!!!

61.下列各项中&#xff0c;属于对会计职业道德进行自律管理与约束的机构是&#xff08;&#xff09;。 A.纪律检查部门 B.财政部门 C.会计行业组织 D.其他组织 答案&#xff1a;C 62.下列各项中&#xff0c;对会计职业行为自我约束和自我控制的部门主要是&#xff08;&am…

基于RK3568车载电脑助力日本巴士公司高效完成巴士到站系统项目部署

无处不在的物联网&#xff08;IoT&#xff09;技术已经渗透到了人类生活的各个角落&#xff0c;如日常出行乘坐的公交车上&#xff0c;物联网&#xff08;IoT&#xff09;技术的应用就得到完美诠释&#xff01;其通过公交车上的车载电脑网络与中控室服务器连接来对公交车的运行…

论文学习_基于导向式模糊测试的二进制程序漏洞验证方法

1. 引言 研究背景及现存问题:基于代码相似性比较的漏洞检测方法属于静态分析方法,不可避免地存在误报率高的问题,对静态检测方法得到的疑似漏洞代码进行人工分析存在工作量大, 效率低的问题。解决该问题的有效的方案之一是使用导向式模糊测试方法,生成能够执行到疑似漏洞…

【不看答案挑战,今天你刷题了吗?】LeetCode33,题目+解析+答案

你是否觉得每天面对繁忙的工作和生活&#xff0c;编程能力逐渐停滞不前&#xff1f;或者你在寻找心仪工作的过程中&#xff0c;因为算法题目而错失良机&#xff1f;每次对面试官各种算法题目而力有不逮&#xff1f;那么从现在开始参与**【不看答案挑战&#xff0c;每天刷一道Le…

探索顺序结构:栈的实现方式

&#x1f511;&#x1f511;博客主页&#xff1a;阿客不是客 &#x1f353;&#x1f353;系列专栏&#xff1a;渐入佳境之数据结构与算法 欢迎来到泊舟小课堂 &#x1f618;博客制作不易欢迎各位&#x1f44d;点赞⭐收藏➕关注 ​​ 一、栈的定义 栈&#xff08;Stack&#xf…

星坤X0600系列线对板连接器:简化连接,提升效率!

随着科技的不断进步&#xff0c;电子设备在我们的生活和工作中扮演着越来越重要的角色。然而&#xff0c;随之而来的是设备连接的复杂性&#xff0c;这不仅增加了安装和维修的时间成本&#xff0c;还可能因为操作不当而影响设备的性能和寿命。针对这一问题&#xff0c;中国星坤…

文本生成图像综述

本调查回顾了扩散模型在生成任务中广泛流行的背景下文本到图像的扩散模型。作为一份自成一体的作品&#xff0c;本调查首先简要介绍了基本扩散模型如何用于图像合成&#xff0c;然后介绍了条件或指导如何改善学习。基于这一点&#xff0c;我们介绍了文本到图像生成方面的最新方…

C++设计模式——Facade外观模式

一&#xff0c;外观模式简介 外观模式是一种结构型设计模式&#xff0c; 又称为门面模式&#xff0c;也是一种基于创建对象来实现的模式&#xff0c;为子系统中的各组接口的使用提供了统一的访问入口。 外观模式对外提供了一个对象&#xff0c;让外部客户端(Client)对子系统的…

python小白兔做操 青少年编程电子学会python编程等级考试三级真题解析2021年12月

python小白兔做操 2021年12月 python编程等级考试级编程题 一、题目要求 1、编程实现 小白兔们每天早上都到草坪上做早操。做操前,首先要按照身高由矮到高排个队,下列代码实现了排队的功能。首先读取小白兔的只数,然后读取每只小白兔的身高信息,进行由矮到高的处理,最…

Python-井字棋

井字棋 1.设计登录界面1.1导入需要的工具包1.2窗口显示1.3登录界面图片显示1.6标签按钮输入框显示 2.登录功能实现2.1用户数据存储 2.2登录和注册2.2.1登录功能实现2.2.2注册功能实现 3.井字棋游戏3.1 导入需要的工具包3.2 窗口显示3.2 按钮标签显示3.3 棋盘设置初始状态3.4 游…

# 深入理解 Java 虚拟机 (二)

深入理解 Java 虚拟机 &#xff08;二&#xff09; Java内存模型 主内存与工作内存 所有的变量存储在主内存&#xff08;虚拟机内存的一部分&#xff09;每条线程有自己的工作内存&#xff0c;线程对变量的所有操作&#xff08;读取、赋值&#xff09;都必须在工作内存中进行…

前端 CSS 经典:图层放大的 hover 效果

效果 思路 设置 3 层元素&#xff0c;最上层元素使用 clip-path 裁剪成圆&#xff0c;hover 改变圆大小&#xff0c;添加过渡效果。 实现代码 <!DOCTYPE html> <html lang"en"><head><meta charset"utf-8" /><meta http-eq…

Linux-笔记 OverlayFS文件系统小应用 恢复功能

前言 通过另一章节 OverlayFS文件系统入门 中已经大致了解了原理&#xff0c;这里来实现一个小应用。通过前面介绍我们已经知道lowerdir是只读层&#xff0c;upperdir是可读写层&#xff0c;merged是合并层&#xff08;挂载点&#xff09;&#xff0c;那么我们可以利用这个机…

[leetcode] smallest-k-lcci. 最小的k个数

. - 力扣&#xff08;LeetCode&#xff09; class Solution { public:vector<int> smallestK(vector<int>& nums, int k) {int L 0, R nums.size() - 1;while (L < R){int left L, right R;int key nums[left];while (left < right){while (left &l…