第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

AWT:我正在嘗試學(xué)習(xí) Java,但無法理解以下程序

AWT:我正在嘗試學(xué)習(xí) Java,但無法理解以下程序

眼眸繁星 2021-10-20 14:23:52
f.add(new MyCanvas()) 中的“new MyCanvas()”是什么?即使在 CanvasExample 類構(gòu)造函數(shù)或 main() 方法中都沒有調(diào)用 Paint() 方法,我們是如何得到橢圓的main() 方法中的新 CanvasExample() 是什么import java.awt.*;public class CanvasExample {      public CanvasExample() {          Frame f = new Frame("Canvas Example");          f.add(new MyCanvas());          f.setLayout(null);          f.setSize(400, 400);          f.setVisible(true);      }      public static void main(String args[]) {          new CanvasExample();    }  }  class MyCanvas extends Canvas {      public MyCanvas() {          setBackground (Color.GRAY);          setSize(300, 200);      }    public void paint(Graphics g){          g.setColor(Color.red);          g.fillOval(75, 75, 150, 75);      } }請解釋
查看完整描述

2 回答

?
慕的地6264312

TA貢獻(xiàn)1817條經(jīng)驗 獲得超6個贊

我希望你能理解 :D

首先它調(diào)用public static void main(String args[])
然后main創(chuàng)建類的新實例CanvasExample并調(diào)用它的構(gòu)造函數(shù)CanvasExample()

,該構(gòu)造函數(shù)創(chuàng)建Frame名為“f”的類的新實例并調(diào)用類的構(gòu)造函數(shù),Frame它將該框架的標(biāo)題設(shè)置為“畫布示例”
CanvasExample()它創(chuàng)建的構(gòu)造函數(shù)行并將類的新實例添加MyCanvasFrame名為“f”
的構(gòu)造函數(shù)的第三行的實例CanvasExample()它只是將“f”的布局設(shè)置null
為構(gòu)造函數(shù)的第四行CanvasExample()它將“f”的大小設(shè)置為 400x400
構(gòu)造函數(shù)的第五行CanvasExample()它只是顯示“f”篩選(以便您可以看到它)
并在創(chuàng)建類的新實例時CanvasExample()返回到構(gòu)造函數(shù)的末尾main

MyCanvas被稱為它的構(gòu)造和它是構(gòu)造函數(shù)中設(shè)置背景“Color.GRAY”和大小的它安全工程師和所有的MyCanvas()構(gòu)造函數(shù)

,每次當(dāng)再次渲染“F”需要它調(diào)用方法paint(Graphics g)類的實例MyCanvas位該實例較小比“f”,所以你可以看到白色后面的
白色是“f”的背景

我想這就是你所要求的。
祝你今天過得愉快


查看完整回答
反對 回復(fù) 2021-10-20
?
小唯快跑啊

TA貢獻(xiàn)1863條經(jīng)驗 獲得超2個贊

  1. 它是Canvas類的一個實例。在 Java 中new是用于創(chuàng)建對象(給定類的實例)的關(guān)鍵字。話雖如此 -new Canvas()創(chuàng)建Canvas類的新實例。類名后面的括號表示構(gòu)造函數(shù)——當(dāng)你想創(chuàng)建一個給定類型的對象時被調(diào)用的代碼塊。

  2. 你得到了橢圓形,因為這個paint方法被調(diào)用了。它只是沒有從您的代碼中明確調(diào)用。該paint方法將始終作為所謂的“回調(diào)機制”被觸發(fā)。這個方法屬于Container類。我建議閱讀有關(guān)它的文檔。的paint在方法MyCanvas類覆蓋了paint從方法Canvas。在擴展Canvas類和覆蓋paint方法時,您應(yīng)該始終在方法的開頭調(diào)用 super 方法。您可以在我已經(jīng)包含在這一點的鏈接中了解原因。

  3. 與第 1 點一樣 -new CanvasExample()創(chuàng)建MyCanvas類的新實例。更具體地說,它調(diào)用構(gòu)造函數(shù) (?public CanvasExample() { ... })。在您提供的代碼中, CanvasExample 的構(gòu)造函數(shù)創(chuàng)建類型的新對象Frame并調(diào)用其中的一些方法。這些方法之一是add并且它是由類Frame從其超類繼承的-?Container
    正如Java awt API 所解釋的,該add方法:

    將指定的組件附加到此容器的末尾。


查看完整回答
反對 回復(fù) 2021-10-20
  • 2 回答
  • 0 關(guān)注
  • 147 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號