java核心技术卷 之框架属性

           JFrame类本身只包含若干个改变框架外观的方法。当然,通过继承,从JFrame的各个 超类中继承了许多用于处理框架大小和位置的方法I其中最重要的有下面几个:

 setLocation和setBounds方法用于设置框架的位置

setlconlmage用于告诉窗口系统在标题栏、任务切换窗口等位置显示哪个图标。

setTitle用于改变标题栏的文字。

setResizable利用—个boolean确定框架的大小是否允许用户改变

JFrame类的继承层次:

java核心技术卷 之框架属性

        组件类的很多方法是以获取/设置方法对形式出现的。例如,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);
        }
    }

}

运行结果:

java核心技术卷 之框架属性

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()

获得该图标的图像。