JFrame類本身只包含若干個改變框架外觀的方法。當然,通過繼承,從JFrame的各個 超類中繼承了許多用於處理框架大小和位置的方法I其中最重要的有下面幾個:
setLocation和setBounds方法用於設置框架的位置
setlconlmage用於告訴窗口系統在標題欄、任務切換窗口等位置顯示哪個圖標。
setTitle用於改變標題欄的文字。
setResizable利用—個boolean確定框架的大小是否允許用戶改變
JFrame類的繼承層次:
組件類的很多方法是以獲取/設置方法對形式出現的。例如,Frame類的下列力法:
public String getTitle()
public void setTitle(String title)
這樣的一個獲取/設置方法對被稱爲一種屬性。屬性包含屬性名和類型。將get或set之後的第一個字母改爲小寫字母就以得到相應的厲性名例如,Frame類有一個名爲title且類型爲String的屬性。
爲了得到屏幕的大小,需要按照下列步驟操作調用Toolkit類的靜態方法getDcfaultToolkit 得到一個Toolkit對象(Toolkit類包含很多與本地窗口系統打交道的方法)。然後,凋用 getScrecnSize方法,這個方法以Dimension對象的形式返回屏幕的大小。Dimension對象同時用公冇實例變量width和height保存着屏幕的寬度和高度。下而是相關的代碼:
Toolkit kit = Toolkit.getDefaultToolkit();
Dimension screenSize = kit.getScreenSize();
int screenWidth = screenSize.width;
int screenHeight = screenSize.height;
下面,將框架大小設定爲上面取值的50%,然後,告知窗口系統定位框架:
setSize(screenWidth / 2, screenHeight / 2);
setLocationByPlatfonn(true);
下面是示例程序:
import javax.swing.*; import java.awt.*; /** * Created by IBM on 2017/9/8. */ public class SizeFrameTest { public static void main(String[]args){ EventQueue.invokeLater(new Runnable() { @Override public void run() { SizeFrameTest.SizedFrame frame=new SizeFrameTest().new SizedFrame(); frame.setTitle("sizedFrame"); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); frame.setVisible(true);//顯示框架 } }); } class SizedFrame extends JFrame{ public SizedFrame(){ //爲了得到屏幕的大小,需要按照下列步驟操作調用Toolkit類的靜態方法getDcfaultToolkit得到一個Toolkit對 // 象(Toolkit炎包含很多與本地窗N系統打交道的力法)。然後,凋用getScrecnSiz方法,這個方法以Dimension // 對象的形式返回屏幕的大小。Dimension對象同時用公有實例變量width和height保存着屏幕的寬度和高度 Toolkit kit=Toolkit.getDefaultToolkit();// Dimension screenSize=kit.getScreenSize(); int screenHeight=screenSize.height; int screenWidth=screenSize.width; //下面,將框架大小設定爲上面取值的50%,然後,告知窗口系統定位框架: setSize(screenWidth/2,screenHeight/2); setLocationByPlatform(true); Image img=new ImageIcon("bookBorrowtb.jpg").getImage(); setIconImage(img); } } }
運行結果:
api
java.awt. Component 1.0
• boolean isVisible()
• void setVisible(boolean b)
獲取或設置visible屈性。組件最初是可見的,但JFrame這樣的頂層組件例外。
• void setSize(int width, int height) 1.1
使用給定的寬度和高度,重新設置組件的大小。
• void setLocation( int x , int y) 1.1
將組件移到一個新的位罝上。如果這個組件不是頂層組件,x和y座標(或者p.x和p.y) 是容器座標;否則是屏幕座標(例如:aJFrame)。
• void setBounds(int x, int y, int width, int height) 1.1
移動並重新設置組件的大小。
• Dimension getSize( ) 1.1
• void setSi ze(Dimensiond) 1.1
獲取或設置當前組件的size屬性。
java.awt. Window 1.0
• void toFront()
將這個窗門顯示在其他窗口前面。
• void toBack()
將這個窗口移到桌面窗口棧的後,並重新排列所有的可見窗口
• boolean i sLocati onByPlatform() 5.0• void setLocationByPlatform(boolean b) 5.0
獲取或設置locationByPlatform厲性。這個屬性在窗口顯示之前被設置,由平臺選擇一 個合適的位置。
java.awt,Frame 1.0
• boolean i sResizable()
• void setResizable(boolean b)
獲取或設罝resizable屬性。這個屬性設罝後,用戶可以重新設置框架的大小。
• String getTitle()
• void setTitle(String s)
獲取或設置title屬性,這個屬性確走框架標題欄中的文字。
Image getlconlmage()
void setIconImage(Image image)
獲取或設置iconImage屬性,這個屬性確定框架的圖標。窗口系統可能會將圖標作爲框架裝飾或其他部位的一部分顯示。
• boolean isUndecorated( ) 1.4
• void setUndecorated( boolean b) 1. 4
獲取或設置undecorated屬性。這個屬件設置後,框架顯示中將沒有標題欄或關閉按鈕這樣的裝飾。在框架顯示之前,必須凋用這個方法。
•int getExtendedState() 1.4
• void setExtendedState(int state ) 1.4
獲取或設置窗門狀態。狀態是下列值之一。
Frame. NORMAL
Frame.IC0NIFIE0
Frame. MAXIMIZE0.H0RIZ
Frame.MAXIMIZEDVERT
Frame. f4AXIMIZEDJ0TH
java.awtToolkit 1.0
• static Toolkit getDefaultToolki t()
返回默認的工具筘。
• Dimension getScreenSize()
返冋用戶屏幕的尺寸。
javax.swing.lmageIcon 1.2
• Imagelcon(String filename)
構造一個圖標,K:閣像存儲在一個文件中。
• Image getlmage()獲得該圖標的圖像。