Apr 07

7.关注GUI—无论听起来有多么荒谬,我要一再指出的是GUI的功能和运行情况和商业客户是同等重要的。GUI是一个成功的应用程序的重要组成部分。IT管理总是忽略GUI的重要性。许多机构省钱的方式是不雇用设计“user-friendly”应用程序有经验的网络设计师。Java开发者不得不依赖于他们自己的HTML技术和在此领域的那点局限性知识。我见过太多的应用程序是 “computer friendly”而不是 “ user friendly”。很少看到有开发者在软件开发和GUI开发两者都同样精通的。如果你是那个不幸的被指定去创建一个应用程序界面的Java开发者,你可以遵循这三个规则: Continue reading »

Apr 07

最好的像避免CPU浪费的方法是去引用像这样的包装方法:

public class BadCode {
  public static final int DEBUG_MODE = 1;

  public static final int PRODUCTION_MODE = 2;

  public static void calculationWithPrint(int logMode){

  double someValue = 0D;

  for (int i = 0; i < 10000; i++) {

  someValue = someValue + i;

  myPrintMethod(logMode, someValue);

  } Continue reading »

Apr 07

4.不要有难懂的代码—开发者经常忘记这一点或是忽略故意忽略这条规则,因为通常我们都在赶时间。但是如果我们能遵守这个规则,我们就不会终止我们所处的形势了。要花多长时间去写入另外一行最后定义的静态变量代码呢?

  举个例子:

public class A {
  public static final String S_CONSTANT_ABC = “ABC”;

  public boolean methodA(String sParam1){

  if (A.S_CONSTANT_ABC.equalsIgnoreCase(sParam1)){

  return true;

  }

  return false;

  }

  }

Continue reading »

Apr 07

1.给你的代码加注解—每个人都知道这一点,但是总会有人忘记遵守。你有多少次“忘记”加注解了?的却不加文字注解有助于程序的功能性。但是一次又一你返回两星期前写的代码,结果你想不起来那是什么了!如果这个未注解的代码确实是你写的那你就是幸运的了。因为在那些代码中可以唤起你的记忆。不幸的是,大多数的时候代码是别人写的,而且他已将离开了公司!有句谚语是这样说的“自己的事情自己做”。所以为了别人或是我们自己考虑,在你的代码上加上注解吧。 Continue reading »

Apr 07

想一下在 Java 中,我们如何用观察者模式来让视图反映模型的变化的?观察者,被观察者,注册监听器,事件,回调,获取数据,等等是不是很麻烦?

有了绑定,我们可以直接将观察者的某个属性和被观察者的某个属性绑到一块,同步变化,省了中间很多步骤,下面的例子,我将一个圆的透明度和一个文本的值与一个滑块的值绑定到一块。看看在浏览器里运行时什么效果(注意:需要 Java 插件,否则看不到效果)(下载到本机 style=”COLOR: #0000ff” href=”http://myqiao.freehostia.com/javafx/step/06/BindSample.jnlp”>下载到本机):

Java needed. Click for details.

//一个滑块
var slider = SwingSlider {
minimum: 0
maximum: 100
value: 80
vertical: false

};
Continue reading »

Apr 07

一、类的定义

1、有了变量和函数,把它们和到一块不就成了类吗?

class People {
var name: String;
var age: Integer;
}
class Hello {
var people: People;
function Greeting() {
println(”Hello {people.name} ,You are {people.age} years old.”);
}
}

二、抽象类和接口

1、抽象类用 abstract 关键字修饰

abstract class People {
var name: String;
var age: Integer;
}

和其他面向对象的语言一样,抽象类是不能创建实例的。

2、JavaFX 中没有接口 ,但是可以直接使用 Java 中的接口

interface IHello{
void Greeting();
}
Continue reading »

Apr 07

JavaFX 的变量、函数与传统 Java 语法相比,有一些不一样的地方。

一、变量和常量

1、声明

var 变量名 : 类型 = 变量值;

def 常量名 : 类型 = 常量值;

其中,: 类型 是可选的,编译器会自动判断类型。

var i:Integer = 12;var i1 = 11; //自动判断为 Integer

def name:String = “hello”;def name1 = “hello”; //自动判断为 String

def 声明的常量被赋值以后就不能修改,但是如果常量是对象类型,他的成员可以改变,比如:

def p : Person = new Person();p.Name=”改名”; //可以修改成员
Continue reading »

Apr 07

在 JavaFX 其实并没有传统意义上的数组,正确的叫法应该是序列,即 Sequence ,它类似传统语言库里面的 ArrayList,没有长度限制,可以随时添加元素或者删除元素,同时还提供一些附加的操作。

1、定义一个数组

将元素放到方括号中,用逗号分隔开就可以定义了。

var weekDays = ["Mon","Tue","Wed","Thur","Fri"];

2、数组自动扁平化

var days = [weekDays, ["Sat","Sun"]];

这里的 days 被自动展开为 ["Mon","Tue","Wed","Thur","Fri","Sat","Sun"];

3、创建等差数组

var nums = [1……100];var nums2 = [1……100 step 2];

step 2 是什么意思应该难不到你吧?呵呵。注意:这里说的等差是元素的值等差,而元素的编号是还从 0 开始顺序递增的。
Continue reading »

Apr 07

一、JavaFX 有几种基本数据类型,分别是:

Integer 整数类型

Number 浮点数类型

Boolean 逻辑类型

Duration 时间类型

String 字符串类型

这几种类型与传统的编程语言对应的类型一样,分别支持加减乘除、自加自减、比较大小、逻辑判断等等这些操作,其实想想哪门语言也就是这些东西。

二、默认值:一个基本数据类型的变量被声明了以后,如果没有赋初值,系统会自动初始化为默认值,见下表:

类型
声明
默认值
元素说明符
Continue reading »

Apr 07

每当我们要学习一种新的技术,首先要搞明白他是干什么的,对自己有什么用处,把相关情况弄清楚以后,才能决定去不去学习他。在学习JavaFX之前,下面几个问题我觉得应该先搞清楚:

一、什么是 Rich Internet Applications ?

Rich Internet Applications ,缩写RIAs,翻译过来是富客户端应用程序,或者富互联网应用程序。他是从网络下载到本机,可以在浏览器中运行的一种应用程序。当然也可以脱离浏览器,直接在操作系统下运行。相对于传统的的Web应用,富客户端应用程序主要特点是丰富的界面效果。

说白了,RIAs就是把原来在桌面上跑的应用程序放到浏览器中去跑。

二、富客户端是不是为了取代传统 Web 应用的界面?

目前来说我觉得他们互为补充,传统 Web 应用,特别是企业级应用,主要突出数据的存储、检索和管理,重点在业务和逻辑,而不在界面。而RIAs主要突出用户的体验和交互性。二者如何结合应该根据实际情况来,你要在浏览器中玩扫雷游戏,当然得富客户端,如果是个搜索引擎,传统的 Web 界面足以。如果是个银行账户查询界面,可能可以把二者结合起来。
Continue reading »