邱小明鹏 2021-12-15 22:51 采纳率: 100%
浏览 53
已结题

Java里paint怎么调用的,两个setColor为什么不会重写??


为什么这两个setColor不会冲突,反而可以一个颜色一个设背景
paint是怎么调用的


package com.qxp;

import javax.swing.*;
import javax.xml.crypto.Data;
import java.awt.*;
import java.util.Date;

public class Time extends JFrame implements Runnable {
    Thread clock;
    public  Time()
    {
        super("Clock-CN");
        this.setFont(new Font("Times New Roman", Font.BOLD, 60));
        this.go();
        this.setSize(280,100);
        this.setVisible(true);
    }
    @Override
    public void run() {
        while(true)
        {
            repaint();
            try {
                Thread.sleep(1000);
            }catch (InterruptedException e){}
        }
    }
    public  void go()
    {
        if (clock==null)
        {
            clock=new Thread(this);
            clock.start();
        }
    }
    public void stop()
    {
        clock=null;
    }
    public  void  paint(Graphics g)
    {
        String s="";
        Date now = new Date();
        int hour=now.getHours();
        int minute=now.getMinutes();
        int second=now.getSeconds();
        s=hour+":"+minute+":"+second;
        *** g.setColor(Color.WHITE);**
        Dimension dim = getSize();
        g.fillRect(0, 0, dim.width, dim.width);
    **   g.setColor(Color.BLACK);**
        g.drawString(s,20 , 80);
    }
    public static void main(String[] args) {
        Time that=new Time();
        that.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    }
}


```

  • 写回答

2条回答 默认 最新

  • CSDN专家-sinJack 2021-12-16 08:57
    关注

    因为第一次调用setColor()方法表示给背景设置颜色。
    第二次调用setColor()方法表示给画笔设置颜色。
    底层是根据你调用的次数,来确定是给背景设置颜色还是画笔的。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

问题事件

  • 系统已结题 12月24日
  • 已采纳回答 12月16日
  • 创建了问题 12月15日

悬赏问题

  • ¥15 在若依框架下实现人脸识别
  • ¥15 网络科学导论,网络控制
  • ¥100 安卓tv程序连接SQLSERVER2008问题
  • ¥15 利用Sentinel-2和Landsat8做一个水库的长时序NDVI的对比,为什么Snetinel-2计算的结果最小值特别小,而Lansat8就很平均
  • ¥15 metadata提取的PDF元数据,如何转换为一个Excel
  • ¥15 关于arduino编程toCharArray()函数的使用
  • ¥100 vc++混合CEF采用CLR方式编译报错
  • ¥15 coze 的插件输入飞书多维表格 app_token 后一直显示错误,如何解决?
  • ¥15 vite+vue3+plyr播放本地public文件夹下视频无法加载
  • ¥15 c#逐行读取txt文本,但是每一行里面数据之间空格数量不同