Swing GUI 案例 - 4. 快速建立原型

                   Swing GUI 案例 - 4. 用最快的速度建立原型

在编写GUI程序时,根据设计意图,最快地实现一个原型,并在原型上逐项改进,是我摸索的一个有效方法。

应用简述:实现如下界面,并提供相关的录入、查询、修改和删除等功能。

gui_win

为上述构思建立原型,最少需要多少行程序呢?

分析一下,这个界面的核心应当是三个滚动面板(JScrollPane),一个容纳任务列表(左侧),一个容纳记录列表(右侧),一个容纳文本信息(右下)。

其他的相对简单。

任务摘要:

1、创建三个滚动面板(JScrollPane)

2、创建右边的分割面板(JSplitPane)

3、创建整体的分割面板

4、设定主要部件的大小,以及分割条的位置

5、创建窗口(JFrame)

6、显示窗口

这样的话,也许下列30行代码可以解决问题:

 

import java.awt.*;
import javax.swing.*;

public class taskman1 {
    
    public static void main (String[] args) { 
        JScrollPane 
        s_index = new JScrollPane(new JTextArea()) ,
        s_recs = new JScrollPane(new JTextArea()) , 
        s_info = new JScrollPane(new JTextArea()) ;
        
        JSplitPane 
        right = new JSplitPane
        (JSplitPane.VERTICAL_SPLIT,s_recs,s_info) ,
        split = new JSplitPane
        (JSplitPane.HORIZONTAL_SPLIT,s_index,right);

        split.setPreferredSize(new Dimension(600,400)) ;
        right.setDividerLocation(300) ;
        split.setDividerLocation(300) ;
        
        JFrame f = new JFrame("任务人III") ;
        f.setContentPane(split) ;
        f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE) ;
        f.pack() ;
        f.setVisible(true) ;
        
    }
}

 

编译运行,效果如下:

step.01

看起来有点意思了,不过还有两点缺陷:

1、窗口风格有差异;

2、程序尚不能算是线程安全(参见最简单的swing程序

改进一下,程序达到45行:

import java.awt.*;
import javax.swing.*;

public class taskman2 {
    
    public static void main(String[] args) 
    throws Exception { 
        String lnf = UIManager
        .getCrossPlatformLookAndFeelClassName() ;
        UIManager.setLookAndFeel(lnf) ;
        JFrame.setDefaultLookAndFeelDecorated(true) ;
        JDialog.setDefaultLookAndFeelDecorated(true) ;
        
        SwingUtilities.invokeLater(new Runnable(){
            public void run() { 
                make_ui() ;
            } 
        }) ;
    }
    
    private static void make_ui () { 
        JScrollPane 
        s_index = new JScrollPane(new JTextArea()) ,
        s_recs = new JScrollPane(new JTextArea()) , 
        s_info = new JScrollPane(new JTextArea()) ;
        
        JSplitPane 
        right = new JSplitPane
        (JSplitPane.VERTICAL_SPLIT,s_recs,s_info) ,
        split = new JSplitPane
        (JSplitPane.HORIZONTAL_SPLIT,s_index,right);

        split.setPreferredSize(new Dimension(600,400)) ;
        right.setDividerLocation(300) ;
        split.setDividerLocation(300) ;
        
        JFrame f = new JFrame("任务人III") ;
        f.setContentPane(split) ;
        f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE) ;
        f.pack() ;
        f.setVisible(true) ;
    }

}

对,这是我的程序风格,我希望我的代码在小屏幕中也不需要左右滚动,也就是说,每一行的字符数都会限制在(比如说)60以内。

可是java的有些类和方法的名字实在是太长了,但我还是想控制,这样,就多了一些语句的折行,例如:

 

        String lnf = UIManager
        .getCrossPlatformLookAndFeelClassName() ;

 

这个程序在eclipse中显示时,即使是小窗口,也不需要横向滚动(没有横向的滚动条):

 

nowrap

 

这次的运行效果:

 

prot2

 

图形界面程序,有图,感觉上就可以借鉴绘图、绘画方面的理论。

在绘画中,也许这可以称为构图,忽略细节,寻求整体的感觉结构。

类比作文,这叫列提纲;

现在是写程序,这被称为“原型”。

从学生时代一直到今天,我写程序一直是缺乏耐性,不论多大的程序,如果我在程序编辑器里工作了15分钟,我就会下意识的要运行或测试一下。如果写了半个小时还不能进行测试,我会下意识的考虑重新组织程序,以便能够尽快的运行一下、测试一下。

这只是我的编码习惯,我在做设计和写文章时,只要精神集中,还是可以长时间投入的哦。

 

 相关:

面板和布局

本应用的概念模型

Swing的线程安全

Swing程序组织 原则和技巧

最简单的Swing程序

AWT/SWT/Swing 区别和联系

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值