首页 > 编程语言 >表白程序

表白程序

时间:2023-07-22 14:55:30浏览次数:40  
标签:jFrame Thread 表白 int 程序 线程 new mypanel

super关键字

  • super可以用来引用直接父类的实例变量。
  • super可以用来调用直接父类方法。
  • super()可以用于调用直接父类构造函数

线程编程

实现线程编程有两种方式

  1. 接口:自定义的类去实现Runnable接口,这个类就具有了线程的功能,实现接口之前必须对接口中的方法进行重写
  2. 继承:自定义的类去继承Thread类,自定义的类就具有了线程的功能
  3. 启动线程,创建线程对象,将还有线程的类作为参数传入,然后调用start方法
 Thread thread = new Thread(mypanel);

 thread.start();

实现接口中的run方法

run()作用 1.表示线程执行的任务处理方法,交给线程处理的业务逻辑放在run方法中

  1. 线程的run()由Jvm调用

package com.cy;

import javax.swing.*;
import java.awt.*;
import java.beans.PropertyVetoException;

public class mypanel extends JPanel implements Runnable {
    /**
     * 绘制图形,需要画布,画笔,继承jpanel
     */
    int x[]=new int[300];
    int y[]=new int[300];
    public mypanel(){
        for (int i = 0; i <300 ; i++) {
            x[i]=(int)(Math.random()*1024);
            y[i]=(int) (Math.random()*768);
        }
    }
    public void paint(Graphics g){
        super.paint(g);//调用jpanel中的paint函数,完成初始化
        this.setBackground(Color.BLACK);

        //绘制字体
        g.setColor(Color.white);//设置画笔白色

        //设置字体样式 字体样式 风格0默认 14号字体
        g.setFont(new Font("",0,14));

        //添加椭圆
        g.fillOval(100,100,80,80);

//        g.drawString("love",100,100); //设置具体位置绘画内容

        //绘制满屏love
//        Math.random()生成随机数再0,1之间,所以随机坐标设置
        for (int i = 0; i <300 ; i++) {
            g.drawString("love",x[i],y[i]);
        }
    }

    @Override
    public void run() {
        while (true){
            for (int i = 0; i <300 ; i++) {
                y[i]++;
                if (y[i]>768){y[i]=0;}

            }


            try {
                Thread.sleep(30); //线程执行这里时,会停顿相应的时间
            } catch (InterruptedException e) {
                e.printStackTrace();
            }
            //不断刷新窗口,才能展示动画效果
            repaint();

        }

    }
}


package com.cy;

import javax.swing.*;

public class star {
    public static void main(String[] args) {

        //画图三件套 jframe画板 jpanel画纸 graphics画笔
        JFrame jFrame = new JFrame("star"); //设置窗口的相关属性
        jFrame.setSize(1024,768);
        jFrame.setLocationRelativeTo(null);//设置窗口居中
        jFrame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);//设置双向关闭,关闭窗口程序终止,程序终止窗口关闭

        //设置画布对象,添加到画板窗口
        mypanel mypanel = new mypanel();
        jFrame.add(mypanel);

        Thread thread = new Thread(mypanel);

        thread.start();

        jFrame.setVisible(true);//设置窗口可见

    }
}

标签:jFrame,Thread,表白,int,程序,线程,new,mypanel
From: https://www.cnblogs.com/tgfoven/p/17573369.html

相关文章

  • Java异常处理应用程序编写
    Java异常处理应用程序编写指南概述Java异常处理是编写健壮应用程序的关键部分之一。当程序运行时发生错误或异常时,异常处理机制允许我们捕获和处理这些异常,以避免程序崩溃或产生意外结果。本文将指导你如何编写Java异常处理应用程序。流程概述下面是Java异常处理应用程序编写的......
  • 机器学习编译(二):张量程序抽象
    元张量函数(primitivetensorfunction)一个模型的执行包含tensor和primitivetensorfunction,后者是定义tensor之间的计算步骤的函数(通常也叫op,不过这里的范围更广,还包括Module等)。上面的linear、add、relu、softmax都是元张量函数。框架通常都会实现常见的计算操......
  • Java Web 程序设计预习提纲
    以下是JavaWeb程序设计的预习提纲的Markdown格式示例:JavaWeb程序设计预习提纲1.Java基础回顾Java语言基础与面向对象Java类与对象的定义与使用常用数据类型与控制流程异常处理与文件I/O操作2.Servlet基础Servlet概述与生命周期Servlet的请求与响应S......
  • 将java程序制作exe可执行程序,并制作成安装包
    exe4j:生成exe可执行程序innoSetup:将可执行程序制作成安装包 将jar和jre存放在同一个文件加内,方便操作以下是制作exe的流程图: 剩下的直接默认,即可生成exe 以下是制作安装文件的流程图: 在上图弹出的框中,粘贴下面提供的代码 代码;Scriptgenerated......
  • 南京邮电大学《程序设计(上机)》题目[2023-07-21]
    南京邮电大学《程序设计(上机)》题目[2023-07-21]2022-2023学年第1学期程序设计实验指导书胥备17766106600一、 实验前准备硬件:微型计算机一台(个人笔记本电脑)软件:任一C或C++语言开发工具知识准备:1)复习C或者C++语言知识二、 实验目的与任务目的:本课程是在《高级语言程序......
  • linux 怎么看java程序有没有线程锁住的情况
    在Linux上,我们可以使用一些工具和技术来查看Java程序是否存在线程锁住的情况。下面将介绍两种常用的方法:使用jstack和使用VisualVM。使用jstackjstack是Java自带的一个命令行工具,可以用来生成Java虚拟机当前时刻的线程快照。通过分析线程快照,我们可以查看线程的状态、堆栈信息等,......
  • mysql 分组生程序号
    MySQL分组生成程序号的实现步骤1.了解需求在开始编写代码之前,我们首先需要了解需求。根据任务描述,我们需要实现一个功能,即在MySQL数据库中根据某个字段进行分组,并为每个分组生成一个程序号。这个程序号能够按照指定的规则进行排序。2.数据准备在实现之前,我们需要准备一些......
  • 以程序员为视角,关于商品详情API接口的说明
    ​商品详情API接口是现代电商平台中非常重要的一部分,它提供了获取淘宝商品详细信息的能力。作为一个程序员,了解如何调用这个API接口是非常关键的。首先,我们需要明确的是,API接口是应用程序与服务器之间进行通信和数据交换的一种方式。在调用商品详情API接口之前,我们需要先获得相......
  • Linux应用程序安装
    一、linux安装包分类1.Linux源码包源码包就是一大堆源代码程序,是由程序员按照特定的格式和语法编写出来的2.LinuxRPM二进制包二进制包,也就是源码包经过成功编译之后产生的包。由于二进制包在发布之前就已经完成了编译的工作,因此用户安装软件的速度较快(同Windows下安装软件速......
  • 如何理解小程序插件?微信及支付宝官方详解
    一、小程序插件功能介绍1、如何理解插件插件,英文名可称作“Plug-in、Plugin、add-in、addin、add-on、addon或extension”,是一个依附于主程序的辅助程序,透过和主程序的互动,用来代替主程序需要增加一些所需的特定功能。更通俗的来讲,就类似机器的零件,可以“插入”的形式添加到程......