`
vakin.jiang
  • 浏览: 147158 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

Swing也疯狂,打造华丽用户界面体验

阅读更多
最近一段时间在公司闲着没事做,一向只倾心与java老大就启动了一个实验性项目,也就是用java做前端用户界面取代目前公司普遍用的C++开发的界面。之前用javaFX实验过一段时间,苦于没有好的设计器,完全违背了敏捷开发的初衷。鉴于netbeans目前的设计器还比较OK了,虽然生成的代码冗长拖沓。但是java的最大优势就是开源可以自行修改源码,自行设计组件,自行修改设计器....
  说干就干,拿了我们公司业务最复杂的一个页面流程做实验。在设计上采用了界面和数据完全分离,借鉴于javaFx数据绑定概念。UI的操作更新绑定的数据模型内容,数据模型再发布事件通知UI刷新。基于这种思想,我们用设计器设计好界面,基本不要在里面写太多其他业务逻辑除了调用绑定数据模型的get/set方法和注册UI刷新事件外。
   也许很多人认为Swing开发界面最大的瓶颈就是速度问题。这个也是我们优先考虑的,因为我们公司很多终端机都是128M内存,奔3时代老掉牙的机器。通过大量优化工作,老大为此鏖战几个通宵哦。目前在老机器下,与原来C++终端程序并行运行,在分配最大32M内存的情况,整个页面加载出来需要2秒,界面切换1秒~1.5秒之间,与原来C++同种程序大概差不多。整个项目图片比较多,就不发布出来了,先看看预览图片,如果有对此感兴趣同仁,我将把我们用到的优化方案分享出来,也大家一起研究学习。

UI部分代码片段:
private void onBallClicked(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_onBallClicked
    	int index = Integer.parseInt(evt.getActionCommand());
         dataModel.setSelectedCoordinate(new Integer[]{row, index});
        
    }//GEN-LAST:event_onBallClicked

private void onBallChooseAction(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_onBallChooseAction
    	Ball ball = (Ball) evt.getSource();
    	ball.setImage(ball.getPressedImage());
        String cmd = evt.getActionCommand();
       dataModel.setChooseBall(Integer.parseInt(cmd),true);
    }//GEN-LAST:event_onBallChooseAction


数据模型代码片段:
public void setChooseBall(Integer chooseBall) {

    	printLog("","当前输入球号码:"+chooseBall);
        if(isDuplicate(chooseBall,chooseTotal))
            return;
        this.chooseBall = chooseBall;
        updateSSQdataModel(true);
        fireRefreshUIEvent(RefreshUIEvent.DOREFRESH);
    }

private void updateSSQdataModel(boolean isAddBall) {
        if (isAddBall) {
            currentBallAmount++;
             int x = (currentBallAmount -1)/ 7;

        int y = currentBallAmount % 7 - 1;
        if (y < 0) {//选择篮球结束
            y = 6;
            finishedOne = true;
            chooseTotal++;
            printLog("当前选择第"+chooseTotal+"注号码",data[x]);
        }else{
            finishedOne = false;
        }

        data[x][y] = chooseBall;
        nextChooseIsBlue = (y == 5);

        sort(x);
        }
        
        totalAmount = chooseTotal * multiples * 2;

        printLog("","\n下一个球:"+(nextChooseIsBlue?"蓝球":"红球") + 
        		"\n当前完成投注数:"+chooseTotal +"\n倍数:"+multiples + "\n总金额:"+totalAmount);
    }

/**
     * 自动选号
     */
    public void autoChoose(){
    	//设置当前注生成为未完成状态
    	finishedOne = false;
          if(chooseTotal>=5){
        	  chooseTotal--;
          }
          
         currentBallAmount =  chooseTotal * 7;
         for (int i = 0; i < data[chooseTotal].length - 1; i++) {
            currentBallAmount++;
            chooseBall = generateRedNumber();
            data[chooseTotal][i] = chooseBall;
        }
         
         generateBlueNumber();
         
//         printLog("自动选号",data[chooseTotal]);
    }

    /**
     * 生成红球
     * @return
     */
    private Integer generateRedNumber() {
    	
		for (;;) {
			double random = Math.random();
			int value = (int)(random*34);
			if(value<=0 || value>33)
				continue;
			if(isDuplicate(value,chooseTotal))
				continue;
			return new Integer(value);
		}
	}






  • 大小: 202.6 KB
  • 大小: 182.5 KB
38
2
分享到:
评论
7 楼 landmine 2009-10-23  
very very 的漂亮!赞一个! 为什么这么漂亮那?
我上次netbean做的那个实在是难看
6 楼 xiejibing1986 2009-10-23  
主要是图片p的好看。
5 楼 ericjoe 2009-10-23  
这个不错!
4 楼 yadsun 2009-10-23  
java能做出这么漂亮的界面啊?真牛,长见识了啊
3 楼 xwkp2008 2009-10-23  
这界面,赞啊!
2 楼 gengsonghang 2009-10-23  
确实很漂亮
1 楼 freecode 2009-10-23  
不错,关注!

相关推荐

    swing界面美化包

    总的来说,Swing界面美化是Java GUI开发中的一项重要技能,通过合理利用Look-and-Feel机制和第三方库,开发者可以打造出独特且吸引人的用户界面,提升用户体验。在实际项目中,结合业务需求和个人审美,灵活运用这些...

    Swing 图形描述

    Swing是一个用于开发Java应用程序用户界面的开发工具包。 以抽象窗口工具包(AWT)为基础使跨平台应用程序可以使用任何可插拔的外观风格。Swing开发人员只用很少的代码就可以利用Swing丰富、灵活的功能和模块化组件...

    Swing用户界面组件

    Swing是Java编程语言中用于构建图形用户界面(GUI)的一个强大的工具包,它是Java Foundation Classes(JFC)的一部分。Swing提供了丰富的组件集,允许开发者创建美观且功能丰富的应用程序。在Swing中,组件通常被...

    SWING用户界面组件

    在Java编程领域,Swing库是用于构建图形用户界面(GUI)的一个重要工具包。这个实验报告主要探讨了如何使用Swing组件来创建一个简单的用户界面。Swing提供了一系列的组件,如按钮、文本框、标签、文本区域等,使得...

    java swing漂亮界面(超酷) javaswing教程

    Java Swing 是Java编程语言中用于构建桌面应用程序用户界面的一个库,它是Java Foundation Classes (JFC) 的一部分。Swing 提供了一系列组件,如按钮、文本框、菜单等,用于创建功能丰富的图形用户界面(GUI)。在...

    java swing漂亮界面 超酷 javaswing教程

    Java Swing是Java编程语言中的一个图形用户界面(GUI)工具包,它是Java Foundation Classes (JFC)的一部分,用于帮助开发者创建桌面应用程序。Swing提供了一系列组件,如按钮、文本框、菜单等,允许开发者构建功能...

    Swing做的高仿QQ登陆界面

    Swing是Java编程语言中的一个图形用户界面(GUI)工具包,它是Java Foundation Classes (JFC)的一部分,用于构建桌面应用程序。本项目“Swing做的高仿QQ登陆界面”旨在为初学者提供一个学习Swing GUI设计和实现简单...

    Java Swing 界面美化包-含源码

    Java Swing 是Java标准库中的一个组件,用于创建图形用户界面(GUI)。Swing 提供了丰富的组件集合,如按钮、文本框、菜单等,用于构建桌面应用程序。然而,Swing 的默认界面风格(LookAndFeel)在视觉上可能相对...

    Java Swing图形用户界面设计

    Java Swing图形用户界面设计课件

    Swing用户界面设计

    Swing用户界面设计是Java编程中一个重要的主题,它提供了丰富的组件库来构建美观且功能强大的图形用户界面。Swing是Java Foundation Classes (JFC)的一部分,完全由Java语言编写,因此具有跨平台的特性,可以在不同...

    java课程设计界面美化包,swing也可以这么漂亮

    在Swing这一Java的图形用户界面(GUI)工具包中,虽然提供了基本的组件和布局管理器,但默认的UI设计往往显得较为朴素。为了使Swing应用看起来更加现代化和吸引人,我们可以引入第三方库,如本案例中的"substance....

    实验七-Java实验报告- Swing图形用户界面

    ### 实验七-Java实验报告-Swing图形用户界面 #### 实验背景与目的 本次实验是基于《Java面向对象程序设计》课程中的一个实践环节,旨在通过实际操作加深对Swing图形用户界面的理解与掌握。实验的具体目的是让学生...

    JavaSwing用户界面设计

    ### Java Swing 用户界面设计知识点详解 #### 一、Swing 的背景及介绍 - **Swing 的起源**:Swing 是 Java 技术中的一个重要组成部分,用于构建图形用户界面(GUI)。它诞生于 Java 早期阶段,主要是为了解决原有 ...

    java swing 用户登录界面设计

    在Java编程领域,Swing库是用于构建图形用户界面(GUI)的重要工具,它提供了丰富的组件和功能,使得开发者能够创建出美观且交互性强的应用程序。在这个特定的项目中,“java swing 用户登录界面设计”涉及到了如何...

    java Swing 设计数据库前台界面

    Java Swing 是Java GUI(图形用户界面)开发的一个重要工具,主要用于构建桌面应用程序。在本项目“java Swing 设计数据库前台界面”中,我们利用Swing组件来创建一个与数据库交互的用户界面,尤其是实现了JTable...

    java Swing用户界面组件

    Java Swing是Java编程语言中用于构建图形用户界面(GUI)的一部分,它属于Java Foundation Classes (JFC)的一部分。Swing提供了丰富的组件集,允许开发者创建功能完备、美观的桌面应用程序。在Swing中,组件是构成...

    java(swing,awt)图形用户界面编程100多个案例

    Java Swing和AWT是Java平台上的两种主要的图形用户界面(GUI)工具包,用于创建桌面应用程序。这两个库提供了丰富的组件、布局管理器以及事件处理机制,使得开发者能够构建功能丰富的交互式用户界面。 首先,AWT...

    java实验报告之图形用户界面程序设计与 AWT/Swing组件

    在本实验报告中,主题是“Java实验报告之图形用户界面程序设计与AWT/Swing组件”,主要目标是让学生熟悉Java GUI设计原理、程序结构,掌握AWT和Swing组件的功能,以及学会应用这些组件来设计应用程序,特别是实现一...

Global site tag (gtag.js) - Google Analytics