Java 创建状态栏

导语 Sketcher程序的一个局限性在于,你不能直接得到有关当前所选图元的类型和颜色的反馈信息。从本章开始,我们将逐步红正这个缺陷。对于显示各种应用程序参数的状态来说,应用Windows的状态栏是一种通用、便捷的方式
Sketcher程序的一个局限性在于,你不能直接得到有关当前所选图元的类型和颜色的反馈信息。对于显示各种应用程序参数的状态来说,应用Windows的状态栏是一种通用、便捷的方式。

    我们可以构造自己的StatusBar类,它将定义一个状态栏。理想的方法是设计一个通用的状态栏,然后再为Sketcher定制它,但实际上我们将采用一种简单方法,即为Sketcher设计一个特定的状态栏类。JPanel类描述了窗格,所以它是构造StatusBar,类的合适的基类。我们可以使用JLabel类作为定义状态栏窗格的基类,为了突出显示再加一个凹形的边框。

    我们从在Skether的底部构造一个具有两个窗格的状态栏开始,这两个窗格分别显示了当前图元的类型和颜色。此后我们就可以准确地知道将要绘制的图元。我们先定义一个StatusBar类,用它来描述应用程序窗口中的状态栏,然后在Statusl3ar类中再定义一个StatusPane类。、

    这是一个StatusBar类的最初定义:

    //class defining a status bar
    import javax.swing.*;

    如何工作因为StatusBar实现了Constants接口,所以所有描述可用图元类型和颜色的变量都可以使用。StatusBar的框架版木有两个StatusPane类烈的数据成员,它们分别明来显示当前的颜色和图元的类型。StatusPane最初显示的信息作为String对象传递给构造函数。

    在StatusBar的构造数中,我们通过调用SetColorPane()和setTypePane()方法更新每个窗格上的显示信息。这样做就确保了StatnsPane对象最初将显示我们为应用程序定义的默认颜色以及图元类型。在需要更新状态栏时,就要凋用这些方法中的某一个或几个。当我们结束了StatusPane的细节内容后,也就完成了setColorPane()和setTypePanse()的定义。

    StatusBar窗格有一个在构造函数中设置的F1owLayout管理器。状态栏中的窗格仅显示少量的文本,因此我们从J1abe1类派生了StatusPane类,这样一来状态栏下的窗格就是一种特殊的Jlahel.这就意味着我们可以调用从Jlahel继承过来的setText()方法为自己的StatusPane设置文木。当这些文木加到状态栏时,StatusPane对象将左对齐,这是由 StatusBar构造函数中调用setLayout()方法的第一个自变量决定的。布局管理器将会在状态栏的窗格之间的水平方向留出10个像素的间隔,在组件之间的垂直方向留出3个像素的间隔。状态栏的边框是一条暗灰色的线,它是利用BorderFactory方法添加的。

    在StatusFane类中惟一的数据成员是Font类型的对象font.我们为窗格文本定义了大小为10磅的标准Serif字体。在构造函数中,我们将背景颜色设置为浅灰色,前景颜色设置为暗灰色以及标准字体。我们还调用了继承过来的方法setHorizontalAlignment(),将对齐方式用CENTER设置为中心对齐,这是在基类JLahel中定义的。

    如果我们可以保持每个窗格的宽度固定不变,在更改文本内容时,就更改以防止来回跳跃。因此我们可以用setPreferredSize()方法将窗格的尺寸设置为最长文本所需的最小值。最后在StatusPane的构造函数中通过调用继承过来的setText()方法设置窗格的文本。

https://www.nucmc.com/ true Java 创建状态栏 https://www.nucmc.com/show-16-149-1.html report 1346.5 Sketcher程序的一个局限性在于,你不能直接得到有关当前所选图元的类型和颜色的反馈信息。从本章开始,我们将逐步红正这个缺陷。对于显示各种应用程序参数的状态来说,应用Windows的状态栏是一种通用、便捷的方式
TAG:Java 状态栏
本站欢迎任何形式的转载,但请务必注明出处,尊重他人劳动成果
转载请注明: 文章转载自:BETWAY官网网 https://www.nucmc.com/show-16-149-1.html
BETWAY官网网 Copyright 2012-2014 www.nucmc.com All rights reserved.(晋ICP备13001436号-1)