最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Java 畫時鐘遇到的問題及解決方案

 更新時間:2021年11月05日 10:54:57   作者:煙溪彭于晏  
我是一個剛?cè)腴T的小菜鳥,希望我寫的東西可以幫助和我一樣剛?cè)腴T的兄弟們少走一些彎路,也希望大佬們可以多指點指點我。感謝!解決在畫時鐘遇到的問題讓我花費(fèi)不少時間...說兩個困擾我比較久的

1.不能一直得到當(dāng)前的時間,導(dǎo)致刷新時間不變。

剛開始我自以為把int s = calendar.get(Calendar.SECOND)放到一個線程線程里再刷新就可以看到秒的變化了,

可惜結(jié)果并不是我想到那樣,畫面并沒有任何變化。

然后我一頓亂操作,最后還是得去問老師。/(ㄒoㄒ)/~~ /(ㄒoㄒ)/~~

讓我知道了還有時間監(jiān)聽器這個東西,看來我知道還是太少啦 (;′⌒`)

加入下列代碼就行啦

2.piant方法里

g.drawString("s",x,y)刷新的時候后一個數(shù)字覆蓋前一個數(shù)字,假如秒從0開始,下一秒的1會直接畫在0上,原來的0不會消失,drawLine()也是如此。如下圖

為什么會有這個問題呢?

因為你之前畫上去的沒有擦掉,所以全混在一起

然后咋解決呢?

想到用g.clearRect()去解決,發(fā)現(xiàn)位置有點難調(diào)。/(ㄒoㄒ)/~~

調(diào)了半天然后發(fā)現(xiàn)直接覆蓋了連內(nèi)容都不顯示了 /(ㄒoㄒ)/~~ 不知道是不是我的用法有錯 ≧ ﹏ ≦

到這里我只能去找度娘求助。

找到了一個好辦法 上圖:

也就是圖上兩行代碼。

調(diào)用super.paintComponent(g) 問題就被解決了

super.paintComponent(g) 會調(diào)用組件的原始界面重新繪制,這樣就相當(dāng)于把上次的擦除啦。

最后把我源碼附上。請各位指點!

 
import javax.swing.*;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.net.http.WebSocket;
import java.net.http.WebSocket.Listener;
import java.util.Calendar;
import java.util.Date;
 
public class ClockFrame extends JFrame {
    ClockFrame() {
        setResizable(false);
        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        setSize(400, 400);
        setLocationRelativeTo(null);
    }
 
    public static void main(String[] args) {
        ClockFrame frame = new ClockFrame();
        ClockPanel panel = new ClockPanel();
        frame.add(panel);
        panel.setCalendar();
        frame.setVisible(true);
    }
}
 
 
class ClockPanel extends JPanel {
    //        畫h:m:s;
    Calendar calendar = Calendar.getInstance();
    int s = calendar.get(Calendar.SECOND);
    int m = calendar.get(Calendar.MINUTE);
    int h = calendar.get(Calendar.HOUR);
 
    public void setCalendar() {
        Timer timer = new Timer(1000, new Listener());
        timer.start();
    }
    class Listener implements ActionListener {
        @Override
        public void actionPerformed(ActionEvent e) {
            s++;
            if (s == 60) {
                m++;
                s = 0;
            }
            if (m == 60) {
                h++;
                m = 0;
            }
            repaint();
        }
    }
 
    //run 動態(tài)
    int sx = 190;
    int sy = 70;
 
    ClockPanel() {
        setBackground(Color.GRAY);
    }
 
    public void paint(Graphics g) {
        super.paintComponent(g);
//        圓
        g.drawOval(83, 57, 220, 220);
 
        //畫點
        g.fillOval(190, 170, 5, 5);//Center
        for (int i = 12; i > 0; i--) {
            g.fillOval((int) (190 + 100 * Math.sin(Math.PI / 6 * i)), (int) (170 + 100 * Math.cos(Math.PI / 6 * i)), 5, 5);
            String time = i + "";
            g.setFont(new Font("微軟雅黑", Font.BOLD, 15));
            g.drawString(time, (int) (190 + Math.sin(Math.PI / 6 * i) * 100), (int) (170 - Math.cos(Math.PI / 6 * i) * 100));
        }
        g.setFont(new Font("微軟雅黑", Font.BOLD, 20));
        String S = s > 10 ? s + "" : "0" + s;
        String M = m > 10 ? m + "" : "0" + m;
        String H = h > 10 ? h + "" : "0" + h;
        g.drawString("現(xiàn)在是中國時間" + H + ":" + M + ":" + S, 80, 40);
 
        final BasicStroke stokeLine = new BasicStroke(3.0f);
        Graphics2D g2d = (Graphics2D) g;
        g2d.setStroke(stokeLine);
        g.setColor(Color.black);
        g.drawLine(190, 170, (int) (190 + (Math.cos((s * Math.PI / 30) - Math.PI / 2) * 100)), (int) (170 + (Math.sin((s * Math.PI / 30 - Math.PI / 2)) * 100)));
        g.setColor(Color.blue);
        g.drawLine(190, 170, (int) (190 + (Math.cos((m * Math.PI / 30 - Math.PI / 2)) * 100)), (int) (170 + (Math.sin((m * Math.PI / 30 - Math.PI / 2)) * 100)));
        g.setColor(Color.GREEN);
        g.drawLine(190, 170, (int) (190 + (Math.cos((h * Math.PI / 12)) * 100)), (int) (170 + ((Math.sin(h * Math.PI / 12)) * 100)));
    }
}
 
 
 

到此這篇關(guān)于Java 畫時鐘遇到的問題及解決方案的文章就介紹到這了,更多相關(guān)Java 畫時鐘內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • java實現(xiàn)本地日期時間處理

    java實現(xiàn)本地日期時間處理

    這篇文章主要介紹了本地日期時間處理的程序,實現(xiàn)了下面的功能,大家參考使用吧
    2014-01-01
  • 詳解使用Spring Boot開發(fā)Web項目

    詳解使用Spring Boot開發(fā)Web項目

    這篇文章主要介紹了詳解使用Spring Boot開發(fā)Web項目,具有一定的參考價值,感興趣的小伙伴們可以參考一下。
    2017-04-04
  • IDEA中實體類(POJO)與JSON快速互轉(zhuǎn)問題

    IDEA中實體類(POJO)與JSON快速互轉(zhuǎn)問題

    這篇文章主要介紹了IDEA中實體類(POJO)與JSON快速互轉(zhuǎn),本文通過圖文實例代碼相結(jié)合給大家介紹的非常詳細(xì),需要的朋友可以參考下
    2022-08-08
  • Java實現(xiàn)TFIDF算法代碼分享

    Java實現(xiàn)TFIDF算法代碼分享

    這篇文章主要介紹了Java實現(xiàn)TFIDF算法代碼分享,對算法進(jìn)行了簡單介紹,概念,原理,以及實現(xiàn)代碼的分享,具有一定參考價值,需要的朋友可以了解下。
    2017-11-11
  • Java TimedCache 帶時間緩存工具類詳解使用

    Java TimedCache 帶時間緩存工具類詳解使用

    工具類是包含集合框架、遺留的 collection 類、事件模型、日期和時間設(shè)施、國際化和各種實用工具類(字符串標(biāo)記生成器、隨機(jī)數(shù)生成器和位數(shù)組、日期Date類、堆棧Stack類、向量Vector類等)。集合類、時間處理模式、日期工具等各類常用工具包,本文將介紹帶時間緩存工具類
    2021-10-10
  • Java中枚舉的實現(xiàn)原理介紹

    Java中枚舉的實現(xiàn)原理介紹

    大家好,本篇文章主要講的是Java中枚舉的實現(xiàn)原理介紹,感興趣的同學(xué)趕快來看一看吧,對你有幫助的話記得收藏一下,方便下次瀏覽
    2021-12-12
  • Java split()方法中的特殊符號舉例詳解

    Java split()方法中的特殊符號舉例詳解

    Java中的split方法可以將一個字符串按照指定的分隔符進(jìn)行分割,返回一個字符串?dāng)?shù)組,這篇文章主要給大家介紹了關(guān)于Java split()方法中的特殊符號的相關(guān)資料,需要的朋友可以參考下
    2023-07-07
  • 在SpringBoot項目中實現(xiàn)讀寫分離的流程步驟

    在SpringBoot項目中實現(xiàn)讀寫分離的流程步驟

    SpringBoot作為一種快速開發(fā)框架,廣泛應(yīng)用于Java項目中,在一些大型應(yīng)用中,數(shù)據(jù)庫的讀寫分離是提升性能和擴(kuò)展性的一種重要手段,本文將介紹如何在SpringBoot項目中優(yōu)雅地實現(xiàn)讀寫分離,并通過適當(dāng)?shù)拇a插入,詳細(xì)展開實現(xiàn)步驟,同時進(jìn)行拓展和分析
    2023-11-11
  • Java實現(xiàn)經(jīng)典游戲飛機(jī)大戰(zhàn)-I的示例代碼

    Java實現(xiàn)經(jīng)典游戲飛機(jī)大戰(zhàn)-I的示例代碼

    《飛機(jī)大戰(zhàn)-I》是一款融合了街機(jī)、競技等多種元素的經(jīng)典射擊手游。本文將利用java語言實現(xiàn)這游戲,文中采用了swing技術(shù)進(jìn)行了界面化處理,感興趣的可以了解一下
    2022-02-02
  • 詳解Java的構(gòu)造方法及類的初始化

    詳解Java的構(gòu)造方法及類的初始化

    這篇文章主要為大家詳細(xì)介紹了Java的構(gòu)造方法及類的初始化,文中的示例代碼講解詳細(xì),對我們學(xué)習(xí)Java有一定的幫助,感興趣的小伙伴可以了解一下
    2022-08-08

最新評論

孝昌县| 金平| 桂阳县| 疏勒县| 垦利县| 定襄县| 马山县| 五莲县| 晋城| 鹿泉市| 靖宇县| 永胜县| 扶余县| 铁力市| 错那县| 石渠县| 嫩江县| 鲁山县| 安达市| 乌苏市| 眉山市| 白城市| 高州市| 凯里市| 梅州市| 勐海县| 庆阳市| 海原县| 右玉县| 玉田县| 磐石市| 锡林郭勒盟| 额尔古纳市| 黑山县| 瑞丽市| 永清县| 株洲县| 平泉县| 民权县| 芦溪县| 稷山县|