java第12天學習內容回顧——java白皮書第7章

  • AWT:抽象窗口工具箱,AWT+IFC==SWING,Swing是基於AWT架構之上的提供組件,但處理事件依然用AWT

  • Swing用於 被繪製的用戶界面類,javaFX可能會替代它,AWT 用於底層機制。

  • 用戶可以指定“觀感”,此外Metal是專屬於java的“觀感”

  • Swing庫中,JFrame類用於描述頂層窗體,它是極少數不需要繪製在“畫布”上的SWing組件之一,所以它的“修飾部件”是由用戶的窗口系統繪製,而不是Swing繪製。

  • 開啓運行窗口部分的代碼格式:Event.Queue.invokelater(A);----A == new Runnable(){B}----         B == public void run(){C} ----C是容器內部代碼描述

  • .setUndecorated(true) 方法用於關閉所有的框架裝飾

  • .setVisible(true) 方法用於顯示控件

  • .setLocation、.setBounds 方法用於設置框架的位置,此處使用到的座標是相對於實體屏幕的。

  • .setIconImage 方法用於設置窗體的圖標

  • .setTitle 方法用於設置窗體的標題

  • .setResizable方法用於設置框架大小是否允許改變。

  • object ---- component ----container ----- windows-------Frame------JFrame繼承關係

  • .setLocationByPlatform(true),新窗體位置與最近顯示窗體有一些錯位

  • “獲取、設置” 方法對 被稱爲一種屬性,屬性包含屬性名和類型,屬性名是set/get後第一個字母改爲小寫得到屬性名,getTitle----title是屬性名。類型與get...()的方繪製相同,此外有一個例外:對於類型爲boolean的屬性,獲取屬性的方法名開頭是is...而不是get...

  • 確定合適的框架大小:Toolkit對象,此對象使用Toolkit.getDefaultToolkit方法構建得到,Toolkit類中包含了很多與本地窗口系統打交道的方法,Toolkit對象有一個方法:getScrenSize,返回一個Dimension對象,這個對象有兩個公有的數據域,width,height,用來放置本地屏幕大小。

  • 關於圖標的設置:使用new ImageIcon(圖片文件名).getImage()方法將圖片文件加載進一個Image對象實例中,使用setIconImage(Image對象實例) 方法設置圖標,

  • 將框架設置爲最大:JFrame類實例.setExtendedstate(Frame.MAXIMIZED_BOTH);參數還可以有其他選擇:.NORMAL,.ICONIFIED,.MAXIMIZED_VERT,.MAXIMIZED_HORIZ

  • 使用多個顯示屏幕的應用程序,使用GraphicsEnvironment和GraphicsDevice類

  • 內容窗格,繪製組件需要定義一個JComponent的擴展類,並且在此類中將paintComponent方法覆蓋掉,注意是覆蓋掉,paintComponent方法有一個Graphics類型的參數,利用它來繪製圖案,圖像和文本。

  • painComponent方法是不需要人工調用的,它將自動調用

  • repaint方法用於強制刷新屏幕

  • 在Graphics類中有一個drawString方法,.drawString(string,x,y)具體繪製字符串

  • container類中存在add(component)方法,利用這個方法通過組件名,將組件加入到框架中

  • java2d庫,paintComponent中的參數Graphics,只要將這個參數強制轉化爲Graphics2D類型並傳給此類型的變量引用,要繪製圖形,首先要創建一個實現了Shape接口的類的對象(Graphics2D實現了shape接口),然後使用此對象的.draw方法繪製

  • java2D採用浮點型像素座標,很多計算是float型,不過應爲編譯器默認小數位double型,所以需要將小數常量後加F,作爲單精度使用,有事還需要強制轉化爲float型,這樣比較麻煩,因此每一個圖形類提供了兩個版本,參數爲float型(省空間)的和參數爲double型(方便)的。詳述與P272

  • 作者建議,儘可能使用Point2D來表示點,而不是x,y,這樣方便理解。詳述與P272

  • 關於直線,橢圓的繪製詳述與P274

  • 填充顏色過程:a.選擇顏色(g2.setPait(color))----b.繪製圖(g2.drawString)    g2.fill(圖形) 填充圖形顏色,.fill 填充後可以不使用.draw畫出,a和b的過程可以反覆進行繪製多種顏色,詳述與P278

  • 對於字體的描繪,詳述與P281,通過Font類對象設置字體信息,new Font("字體名",Font.字體格式,字體大小)

  • Font.deriveFont(a),a如果是float型,相當於改變字體大小,a如果是Int型改變字體風格。

  • 繪製圖像,先得到p_w_picpath類的對象實例用於存儲圖片,然後使用g2.drawImage(p_w_picpath對象實例,x,y,null)來繪製圖片到指定區域,利用g2.copyArea(a,b,c,d,x,y)利用前四個參數鎖定需要複製的區域,複製到後兩個參數鎖定的位置。                   

  • 發表評論
    所有評論
    還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
    相關文章