java核心技术卷 之框架属性
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()获得该图标的图像。