java程序例子總結(jié)及相關知識jframe外觀_第1頁
java程序例子總結(jié)及相關知識jframe外觀_第2頁
java程序例子總結(jié)及相關知識jframe外觀_第3頁
java程序例子總結(jié)及相關知識jframe外觀_第4頁
java程序例子總結(jié)及相關知識jframe外觀_第5頁
已閱讀5頁,還剩6頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領

文檔簡介

1、 JFram MichaelAberethy IFrame JFrame IFrameJava1.0 開始,UI Swing JFram MichaelAberethy IFrame JFrame IFrameJava1.0 開始,UI Swing 70 Motif Windows JFrame 1 UI 所JFrame 1JFrame 的外觀是如何變化Metal 外Motif 外Windows 外IFrame API JFrame API IFrame IFrame IFrame IFrame 從乏味窗口(2)變?yōu)殪拍看翱冢?)解決方案看起來很很明顯:一個獨立于操作系統(tǒng)的框架,它具有JFra

2、me 提供的所有功能到OS 窗口管理器、調(diào)整大小/重管理、最大化/最小化/恢復,同時又可以設置這些組件的外觀。Java1.3 JFrame 在 Java 1.4 中,Sun 在 Frmae 類中引入了一個新的 setUndecorated()函數(shù),它走到了另一個架中的所有內(nèi)容,但是缺少了 Java 1.3 中大多數(shù)特定于操作的好處。IFrame 類是對這個問題的期待已久的解決方案。通過彌合這兩個問題之間的距離,IFrame 提供了一個使用簡單、同時又很強大的解決方案,可以根據(jù)需要對框架進行或多或少的自定義,同時不會犧牲使用 JFrame 時所樣的陳舊的藍色標題欄、同樣的陳舊的三個窗口按鈕和同樣

3、的陳舊的斜面邊框。雖然對于普通應用程序來說,JFrame 仍然很有用,但圖 2. IFrame 圖 3. IFrame 圖 2. IFrame 圖 3. IFrame IFrame IFrame 4 IFrame。IFrame 類 anel的一個到多個實例,這個類的子類包括IFrame IFrame 4 IFrame。IFrame 類 anel的一個到多個實例,這個類的子類包括arIContentPaneanelsWindowChangeEventsIFrame 通信,IFrame 通過分析體系結(jié)構(gòu)中每一個組件,就會清楚為了定制自己的 4IFrame IFrameIFrameJFrame繼承的

4、方法外,IFrameIFrame JFrame JFrame IFrame IFrame public JFrame getContentPane()setContentPane()IFrame getIContentPane()setIContentPane()IFrame myIFrame.getIContentPane().add()getContentPane()IFrame ponentIFrame Windows JPanel 和 Office 在應用程序窗口右下角有一個小的 ponentwidget widgetIContentPanearIFrame多 ar在應用程序窗口右下角

5、有一個小的 ponentwidget widgetIContentPanearIFrame多 ar3。arWindows IWindowButton以繪制所希望的任何形狀和顏色方案(JButton 的外觀超出了本文的范圍) 創(chuàng)建一個具有非標準邊框的復雜標題欄(請參閱例4),那么必須繼承isMouseOnBorder()IContentPaneJFrame JFcontentPaneIContentPaneisMouseOnBorder() 并 Swing 15 WindowChangeListener最小化/最大化狀態(tài)。將這五個事件加上 15 種已有的事件,就包括了所有基本情況?,F(xiàn)在窗口中發(fā)生

6、的所有事情都可以掌握了。IFrame 的強大功能了。記住,IFrame public public 建議用法:JFrame IFrame 所需要完成的基本步驟的例子。學習這些例子并在自己的計算機中運行它們,會看到僅APIIFrame 可以成為應用程com.ibm.iwt.ex lesmain()方法。它們是用 JDK 1.4 編寫的。1:默IFrame向后兼容”IFrame JFrame 5 5. 默認IFrame IFrame Windows2000 JFrame 一樣 Windows2000 JFrame 與 IFrameWindows2000 - 那么,第一個練習應用程序可以是模擬自己的

7、操作系統(tǒng)。 1 顯示了創(chuàng)建一個 IFrame 是多么容易:1IFrame public IWTUtilities.setBorderSize(new Insets(3,3,3,3); setIContentPaneBorder(newLineBorder(Color.red,3);arButtonColors(Color.red, arButtonSize(new (26, public IWTUtilities.setBorderSize(new Insets(3,3,3,3); setIContentPaneBorder(newLineBorder(Color.red,3);arButto

8、nColors(Color.red, arButtonSize(new (26, 完成了一些開多年來一直想要做的事情。這個基本的例子已經(jīng)比當前使用的應用程序窗口中的99% 都更先進法: 2變默認顏色、邊框和大和窗口按鈕的大小。圖 6 顯示了在例 2 中創(chuàng)建的 IFrame。6. 改變顏色、邊框和僅就所說的這些改變可以看出它們在 JFrame 中都是不可能的但是用 IFrame 就可以很容易地實現(xiàn)2 顯示了如何創(chuàng)建例2 中使用的 IFrame:2IFrame public IWTUtilities.setBorderSize(new Insets(3,3,3,3); getIContentPan

9、e().setBorder(newLineBorder(Color.red,3);privateclassTit public IWTUtilities.setBorderSize(new Insets(3,3,3,3); getIContentPane().setBorder(newLineBorder(Color.red,3);privateclassTit privateColorc private ar extends ar =newColor(0,0,0); public 例3: 利用ar 的子的事情,就必須繼承 IWindowTitar類以充分利用它提把自己限制住呢?加上一直想要的

10、JTable 吧。只要調(diào)用IFrame 中ar()IFrame 7 描繪了創(chuàng)建自7. 創(chuàng)建自定義窗口組2 中的框架,并用一個新的、動態(tài)的邊框取代單調(diào)的、靜態(tài)的紅色標題欄,充分利用了所有這些新的可最后,也許是最有創(chuàng)造性的,我在標題欄的右邊增加了一個 JSlider,可以讓這個 IFrame 的用戶動態(tài)改變標題欄背景的漸變色。2 3 JFrame 3IFrame setPreferredSize(newDimen (0, addWindowButton(IWindowButton.CLOSE, SwingConstants.LEFT); setWindowButtonColors(Color.RE

11、D, Color.WHITE); addTitle(getTitle(),SwingConstants.CENTER,newFont(Verdana,Font.BOLD, 14), slider = new new Insets(3,3,3,3);public ponent(Graphics Gradient(g,0,0,getWidth(),getHeight(),setPreferredSize(newDimen (0, addWindowButton(IWindowButton.CLOSE, SwingConstants.LEFT); setWindowButtonColors(Colo

12、r.RED, Color.WHITE); addTitle(getTitle(),SwingConstants.CENTER,newFont(Verdana,Font.BOLD, 14), slider = new new Insets(3,3,3,3);public ponent(Graphics Gradient(g,0,0,getWidth(),getHeight(),public void eChanged(ChangeEvent c = new Color(slider.getValue(), 0, 通過 重載 arJComponentwidget JSlider 4分析創(chuàng)建這個IF

13、rame 的代碼,可以看到它不2 中的代碼更復雜。不過,出于下面兩個理由,我將所有代碼移到public IWTUtilities.setBorderSize(newpublic IWTUtilities.setBorderSize(newInsets(0,7,7,7); getIContentPane().setBorder(new AppBorder();IFrame 的 特性IFrame 在用8顯示了具有某種透明性的復雜應用程序窗口,這種透明性使它區(qū)別8. 加入透明Windows 應用程序開始有了標準矩形以外的框架。其中使用最多的就是 Windows MediaPlayer,從那之后,使應

14、用程序具有非矩形形狀就成了一種趨勢和很酷的事情。是的,Java 應用程序一直沒有這種能力,并且在幸運的是,IFrame 改變了這種局面,可以開發(fā)具有透明性、甚至對于本機繪制像素透明的應用程序窗口。IFrame arIContentPane的子類。應當在子類的ponent()中調(diào)用setTransparent(),以使它可以最后這個例子使用了 IFrame 的其他更高級的功能。從8 中可以看到,標題欄不再是標準的矩形標題欄了。它是自定義的形狀,ar子類中,必須重載和 isInsideTitar()方法,以使標題欄在繪制光標時具有正確的行為,并可以調(diào)整大小。4 顯示了生成例4 中4IFrame g

15、etIContentPane().setBackground(new Color(255, 255, ar(new private class TitlePanel extends public setPreferredSize(new Dimen setFont(newFont(Verdana, Font.BOLD, if (x returnfalse; return true;protected void if(y10&y 16 & = ar(x, = public ponent(Graphics code here/ . setTransparent(this, g, 0, 0, w+1

16、, getIContentPane().setBackground(new Color(255, 255, ar(new private class TitlePanel extends public setPreferredSize(new Dimen setFont(newFont(Verdana, Font.BOLD, if (x returnfalse; return true;protected void if(y10&y 16 & = ar(x, = public ponent(Graphics code here/ . setTransparent(this, g, 0, 0,

17、w+1, DropShadow(g, )(w*.1),(Color c1 = new Color(67, 118, 135); Color c2 = new Color(105, 152, Gradient(g,)(w*.1),0,)(w*.9),Gradient(g,)(w*.1),14,)(w*.9),Graphics2D g2 = strW =strH = g.getFontMetrics().getMaxAscent(); g2.drawString(getTitle(),w/2-strW/2,h-strH/2);private void drawBorder(Graphics g.d

18、rawLine(x, 10+y, x, h); g.drawLine(x,10+y,w-x,10+y); g.drawLine(w-x, 10+y, w-x, h);private class AppBorder extends publicvoidBorder(ComponentstrH = g.getFontMetrics().getMaxAscent(); g2.drawString(getTitle(),w/2-strW/2,h-strH/2);private void drawBorder(Graphics g.drawLine(x, 10+y, x, h); g.drawLine(x,10+y,w-x,10+y); g.drawLine(w-x, 10+y, w-x, h);private class AppBorder extends publicvoidBorder(Componentc,Graphics/ . UI 開發(fā)中的一種趨勢(WindowsXP 而言)IFrame 后,Java 應用程序IWindowTit arUI 開發(fā) 可以開發(fā)出這樣的框架,它可以使用戶自動與某家公司關聯(lián)到一起(而不只限于那種使用戶自動關聯(lián)到 Remond,Washington 的某家公司的

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論