网络编程 | 站长之家 | 网页制作 | 图形图象 | 操作系统 | 冲浪宝典 | 软件教学 | 网络办公 | 邮件系统 | 网络安全 | 认证考试 | 系统进程
Firefox | IE | Maxthon | 迅雷 | 电驴 | BitComet | FlashGet | QQ | QQ空间 | Vista | 输入法 | Ghost | Word | Excel | wps | Powerpoint
asp | .net | php | jsp | Sql | c# | Ajax | xml | Dreamweaver | FrontPages | Javascript | css | photoshop | fireworks | Flash | Cad | Discuz!
当前位置 > 网站建设学院 > 网络编程 > Java
Tag:注入,存储过程,分页,安全,优化,xmlhttp,fso,jmail,application,session,防盗链,stream,无组件,组件,md5,乱码,缓存,加密,验证码,算法,cookies,ubb,正则表达式,水印,索引,日志,压缩,base64,url重写,上传,控件,Web.config,JDBC,函数,内存,PDF,迁移,结构,破解,编译,配置,进程,分词,IIS,Apache,Tomcat,phpmyadmin,Gzip,触发器,socket
网络编程:ASP教程,ASP.NET教程,PHP教程,JSP教程,C#教程,数据库,XML教程,Ajax,Java,Perl,Shell,VB教程,Delphi,C/C++教程,软件工程,J2EE/J2ME,移动开发
本月文章推荐
.Java环境的搭建.
.漫谈Java平台上的CRM系统.
.引用 造型 protected和private的.
.static方法是什么时候执行.
.基于UML的工作流管理系统分析一(.
.java抽取word,pdf的四种武器.
.实例讲解Apache+tomcat+ssl配置.
.使用Web服务和Ja.NET来实现互用性.
.通过E-mail共享Java 对象.
.2005 Java中国开发者大会现场报道.
.什么是AOP系列之二:AOP与权限控.
.配置开发环境(JDK1.5+Tomcat5.5..
.一个表达式计算案例的设计和实现.
.一个简单的 JDBC 包装器.
.测试概念进行代码设计时的七条基.
.论全世界所有程序员都会犯的错误.
.用SQLJ开发数据库(4).
.手机游戏趋势和相关J2ME APIs.
.结合struts和hibernate 谈J2EE数.
.使用 Java 存储过程将更加简便.

等待窗体的一种实现

发表日期:2008-1-5


   在很多应用中,假如某一处理需要花费的时间比较长,应用应该提供一个比较人性化的提示。假如这个处理是由一个循环来实现的,则可以采用一个任务进度提示,其它情况可能就采用弹出一个类似于"系统正在处理,请稍后..."提示框的方式来达到目的。以下的代码简单实现了这一功能:

package test;
import Javax.swing.*;
import java.awt.*;
import com.borland.jbcl.layout.*;
import javax.swing.border.*;

class ProgressPanel extends JPanel {
  JLabel jTip = new JLabel();
  JProgressBar jProgress = new JProgressBar();
  XYLayout xYLayout1 = new XYLayout();
  TitledBorder titledBorder1;
  public ProgressPanel() {
    try {
      jbInit();
    }
    catch(Exception e) {
      e.printStackTrace();
    }
  }
  public static void main(String[] args) {
    ProgressPanel progressPanel1 = new ProgressPanel();
  }
  private void jbInit() throws Exception {
    titledBorder1 = new TitledBorder("");
    jTip.setText("处理中...");
    jTip.setFont(new java.awt.Font("Dialog", 0, 12));
    this.setLayout(xYLayout1);
    jProgress.setOrientation(JProgressBar.HORIZONTAL);
    jProgress.setForeground(new Color(0, 0, 105));
    jProgress.setBorder(BorderFactory.createLoweredBevelBorder());
    jProgress.setStringPainted(true);
    xYLayout1.setWidth(258);
    xYLayout1.setHeight(75);
    this.setDebugGraphicsOptions(0);
    this.add(jTip, new XYConstraints(10, 1, -1, -1));
    this.add(jProgress,       new XYConstraints(5, 16, 249, 24));
  }
}

package test;
import java.awt.Window;
import java.awt.Dimension;
import java.awt.Toolkit;
import javax.swing.JFrame;
import javax.swing.JLabel;
import java.awt.Rectangle;
import javax.swing.SwingConstants;
import java.awt.GridBagLayout;

public class WaitingFrame {
    protected static Window winInc;
    private static WaitingFrame inc;

    private static JLabel jWaitTip;
    private static ProgressPanel proPanel;

    private static final String WAITING_TIP = "系统正在处理中,请稍后.....";
    private static final String PROGRESS_TIP = "处理中...";

    private static final int DEFAULT_WIDTH = 260;
    private static final int DEFAULT_HEIGHT = 45;

    private static int DEFAULT_LOCATEX;
    private static int DEFAULT_LOCATEY;

    private static boolean resetFlg = false;

    private static int maXProgress = 100;
    //当前显示的窗口类型
    private int curType;

    /**
     * 等待窗口
     */
    public static final int WAITING = 0;

    /**
     * 进度条窗口
     */
    public static final int PROGRESS = 1;

    private WaitingFrame() {
    }

    /**
     * 获取提示窗口实例
     * @param aType:窗口类型
     * @return
     */
    public synchronized static WaitingFrame getInstance(int aType){
        if(aType==PROGRESS){
            if(null==proPanel){
                proPanel = new ProgressPanel();
            }
        }else{
            if(null==jWaitTip){
                jWaitTip = new JLabel();
                jWaitTip.setFont(new java.awt.Font("Dialog", 0, 16));
                jWaitTip.setHorizontalAlignment(SwingConstants.CENTER);
                jWaitTip.setText(WAITING_TIP);
                jWaitTip.setBounds(new Rectangle(0, 0, 280, 98));
            }
        }
        if(null==inc){
            inc = new WaitingFrame();
            JFrame frm = new JFrame();
            frm.getContentPane().setLayout(new GridBagLayout());
            winInc = new Window(frm);
            if(aType==PROGRESS){
                inc.curType = aType;
                proPanel.jProgress.setMaximum(maxProgress);
                proPanel.jProgress.setValue(0);
                winInc.add(proPanel);
            }else{
                inc.curType = WAITING;
                winInc.add(jWaitTip);
            }
            winInc.setSize(DEFAULT_WIDTH,DEFAULT_HEIGHT);
            Dimension sysSize = Toolkit.getDefaultToolkit().getScreenSize();
            DEFAULT_LOCATEX = (sysSize.width-DEFAULT_WIDTH)/2;
            DEFAULT_LOCATEY = (sysSize.height-DEFAULT_HEIGHT)/2;;
        }else{
            if (aType == PROGRESS) {
                winInc.removeAll();
                proPanel.jTip.setText(PROGRESS_TIP);
                proPanel.jProgress.setValue(0);
                winInc.add(proPanel);
            }
            else {
                winInc.removeAll();
                jWaitTip.setText(WAITING_TIP);
                winInc.add(jWaitTip);
            }
        }
        inc.curType = aType;
        inc.resetFlg = false;
        return inc;
    }

QQread.com 推出各大专业服务器评测 Linux服务器的安全性能 SUN服务器 HP服务器 DELL服务器 IBM服务器 联想服务器 浪潮服务器 曙光服务器 同方服务器 华硕服务器 宝德服务器


上一篇:Java规则引擎-Drools 人气:667
下一篇:Java开发技术十年的回顾与展望 人气:535
浏览全部Java的内容 Dreamweaver插件下载 网页广告代码 祝你圣诞节快乐 2009年新年快乐