以前幾篇博客裏的例子,你們運行過的話,就能看出來,界面是須要刷新的。程序員
JPanel裏的繪製方法是paintComponent,界面上的東西都是這個方法畫出來的。編程
JPanel對象有一個repaint方法,從字面意思你們也看的懂,這個是重繪方法。線程
能夠粗淺的這麼認爲:每調用一次repaint,就會執行一次paintComponent對象
例如:界面上有一個方塊,位置在座標(20,20)處,blog
按一下向右的方向鍵,須要方塊往右移動一個像素,變爲座標(21,20)開發
那麼在按鍵監聽方法裏,判斷按下的若是是向右方向鍵,就把方塊的橫座標加1博客
而後調用repaint,從新繪製後,方塊的位置就右移了一個像素。程序
注意:雖然只是方塊動了,但整個畫布都從新繪製,不然方塊就是增大,而非右移。方法
再說一下座標系,在圖形界面開發中,界面的座標都是以左上角爲基準。移動
左上角就是(0,0),往右是橫座標遞增,往下是縱座標遞增。
一個界面的大小是多大,右下角的座標值就是多少。
想象一個黑板,在上面畫一個方塊,如今須要把它右移一下,
怎麼作呢,先擦掉,在靠右的地方從新畫一次,對吧。
這裏的擦掉、重繪,對應的就是JPanel的 repaint 方法!
如今,問題來了,若是咱們要方塊不停的往右,怎麼作呢?
固然就是:不停的讓方塊橫座標加一、再調用重繪。。
但是,如何讓程序不停的運行這個邏輯呢?
那就須要用到線程了,且聽下回分解吧。。
原本準備寫線程的,忽然又以爲,前面幾篇貼的代碼太多了,可能你們看的累,乾脆整一篇純文字的吧。這篇可能有點水了,臺哥做爲一個老的掉牙的程序員,有時候也分不清,哪裏須要細講,哪裏須要粗略。因此,寧多寫十句、很多寫一句吧。若是你們都看懂了,並不是我講的好,而是由於,你們很聰明!!
歡迎關注:臺哥編程課堂,https://www.cnblogs.com/chaohi/