`
Kyll
  • 浏览: 101892 次
  • 性别: Icon_minigender_1
  • 来自: 长春
社区版块
存档分类
最新评论

JavaFX 备忘录

    博客分类:
  • Java
阅读更多
疯了, 完全疯了, 这语法好怪异, 呵呵。
融合了 N 多语言特色的样子, 这是要干什么啊? SUN!

在网上找了好多资料,
学习中, 更新中, 备忘录……唉!

JavaFX 数据类型:
String --> java.lang.String
Boolean --> java.lang.Boolean
Number --> java.lang.Number
Integer --> byte、short、int、long、java.math.BigInteger

用 var 声明变量:
var x:Number = 0.9;
var name:String = "John";
var y:Integer = 0;
var flag:Boolean = true;

var numbers:Number = [1, 2, 3, 4, 5];

逻辑运算符:
Java    JavaFX
&&      and
||      or
!       not

函数:
function taxes(x) {
    var t:Number = (19.0 / 100.0) * x;
    return t;
}

if 语句:
if (place_your_condition_here) {
    //do something
} else if (place_your_condition_here) {
    //do something
} else {
    //do something
}

while 语句:
while (place_your_condition_here) {
    //do something
}

for 语句:
//i will take the values: 0, 1, 2, 3, 4, 5
for (i in [0..5]) {
    //do something with i
}

操作过程:
operation startClock() {
do {
    //do something
}

类:
class Order {
    attribute order_nr: String;
    attribute ordertype: Order inverse Order.products;
    attribute products: Order* inverse Order.ordertype;
    function getOrderNr(): String;
    operation addOrder(order: Order);
}

变量基数:
?:可选(可能是null)
+:1或多个
*:0或多个

数组大小:
sizeof array

符合条件子数组:
var mynumbers = [1,2,7,3,30,15,14,6,4];
var numbers = mynumbers[n|n < 10];
结果:1 2 7 3 6 4

数组中第 N 个元素:
var mynumbers = [1,2,7,3,30,15,14,6,4];
var number_four = mynumbers[4];
结果:30

向数组中插入:
insert 10 into mynumbers; 默认在最后一个位置插入 last
insert [8,6,90] as first into mynumbers; 首
insert 122 as last into mynumbers; 尾
insert 78 before mynumbers[3]; 指定位置前
insert 11 after mynumbers[3]; 指定位置后

从一个区间获得偶数的例子:
function odd(p:Number) {
    return select i from i in [1.0 ..p] where (i%2 == 0.0);
}
var result = odd(10.0);
System.out.println("Odd numbers:{result}");

function odd(p:Number) {
    return foreach (i in [1.0 ..p] where (i%2 == 0.0)) i;
}
var result = odd(10.0);
System.out.println("Odd numbers:{result}");

调用 Java 对象:
import javax.swing.JFrame;
import javax.swing.JButton;
import java.awt.event.ActionListener;
import java.lang.System;
var frame = new JFrame();
var button = new JButton("Press me");
frame.getContentPane().add(button);
button.addActionListener(new ActionListener() {
    operation actionPerformed(event) {
        System.out.println("You pressed me");
    }
});
frame.pack();
frame.setVisible(true);
以上代码等价于:
Frame {
    content: Button {
        text: "Press Me"
        action: operation() {
            System.out.println("You pressed me");
        }
}
visible: true
}

数组另类用法:
var week_days = ["Mon","Tue","Wed","Thur","Fri"];
var days = [week_days, ["Sat","Sun"]];
days == ["Mon","Tue","Wed","Thur","Fri","Sat","Sun"]; // returns true

var nums = [1,2,3,4];
var numsGreaterThanTwo = nums[. > 2]; // yields [3, 4]
等价于:
numsGreaterThanTwo = nums[n|n > 2];

[] == null // yields true
sizeof null // yields 0

数组操作:
insert Expression1 [as first | as last] into Expression2
insert Expression1 before Expression2
insert Expression1 after Expression2
delete variable
delete Expression.attribute
delete variable[predicate]
delete Expression.attribute[predicate]

var x = [1,2,3];
insert 12 into x; // yields [1,2,3,12]
insert 10 as first into x; // yields [10,1,2,3,12]

var x = [1,2,3];
insert 10 after x[. == 10]; // yields [1,2,3,10]
insert 12 before x[1]; // yields [1,12,2,3,10]
insert 13 after x[. == 2]; // yields [1, 12, 2, 13, 3, 10];
insert [99,100] as last into x; // yields [10,1,2,3,12,99,100]

var x = [1,2,3];
insert 10 into x; // yields [1,2,3,10]
insert 12 before x[1]; // yields [1,12,2,3,10]
delete x[. == 12]; // yields [1,2,3,10]
delete x[. >= 3]; // yields [1,2]
insert 5 after x[. == 1]; // yields [1,5,2];
insert 13 as first into x; // yields [13, 1, 5, 2];
delete x; // yields []

操作符:
Operator Meaning Java Equivalent
Relational Operators
== equality ==
<> inequality !=
< less than <
> greater than >
<= less than or equal <=
>= greater than or equal >=
Boolean Operators  
and logical and &&
or logical or ||
not logical negation !
Arithmetic Operators
+ addition +
- subtraction; unary negation -
* multiplication *
/ division /
% remainder %
+= add and assign +=
-= subtract and assign -=
*= multiply and assign *=
/= divide and assign /=
%= remainder and assign %=
Other Operators
sizeof array length n/a
indexof ordinal position n/a
if e1 then e2 else e3 conditional expression e1 ? e2 : e3
select list comprehension n/a
foreach list comprehension n/a
new allocation new
op() function/operation call n/a
x.op() member function/operation call x.op()
instanceof type check instanceof
this self access this
. attribute access, context access ., n/a
bind [lazy] incremental [lazy] evaluation n/a
: eager initialization n/a
[] array selection []
format as String formatting n/a
<<>> Identifier quotes n/a
{} String expression n/a
(expr) grouping (expr)
reverse reverses a list n/a
[number1,next..number2]<!----> numeric range n/a

字符串:
var s = 'Hello';
var s = "Hello";

var name = 'Joe';
var s = "Hello {name}"; // s = 'Hello Joe'

var answer = true;
var s = "The answer is {if answer then "Yes" else "No"}"; // s = 'The answer is Yes'

<<关键字>>
var <<while>> = 100;

import javax.swing.JTextArea;
var textArea = new JTextArea();
textArea.<<insert>>("Hello", 0);


范围表达式:
[number1..number2]

var nums = [0..3];
System.out.println(nums == [0,1,2,3]); // prints true

var nums = [3..0];
System.out.println(nums == [3,2,1,0]); // prints true

格式化字符串, 数字, 日期:
</insert></while>expr format as directive

import java.util.Date;
100.896 format as <<%f>>; // yields '100.896000'
31.intValue() format as <<%02X>>; // yields '1F'
var d = new Date();
d format as <
if (condition1) {
    System.out.println("Condition 1");
} else if (condition2) {
    System.out.println("Condition2");
} else {
    System.out.println("not Condition 1 or Condition 2");
}

while 语句:
var i = 0;
while (i < 10) {
    if (i > 5) {
        break;
    }
    System.out.println("i = {i}");
    i += 1;
}

try 语句:
try {
    throw "Hello";
} catch (s:String) {
    System.out.println("caught a String: {s}");
} catch (any) {
    System.out.println("caught something not a String: {any}");
} finally {
    System.out.println("finally...");
}

for 语句:
for (i in [0..10]) {
    System.out.println("i = {i}");
}
// print only the even numbers using a filter
for (i in [0..10] where i % 2 == 0) {
    System.out.println("i = {i}");
}
// print only the odd numbers using a range expression
for (i in [1,3..10]) {
    System.out.println("i = {i}");
}
// print the cartesian product
for (i in [0..10], j in [0..10]) {
    System.out.println(i);
    System.out.println(j);
}

throw 语句:
import java.lang.Exception;
operation foo() {
    throw new Exception("this is a java exception");
}
operation bar() {
    throw "just a string";
}

do 语句:
允许在后台执行一个代码块。
import java.net.URL;
import java.lang.StringBuffer;
import java.lang.System;
import java.io.InputStreamReader;
import java.io.BufferedReader;
// in the AWT EDT
var result = new StringBuffer();
do {
    // now in a background thread
     var url = new URL("http://www.foo.com/abc.xml");
     var is = url.openStream();
     var reader = new BufferedReader(new InputStreamReader(is));
     var line;
     while (true) {
          line = reader.readLine();
          if (line == null) {
               break;
          }
          result.append(line);
          result.append("\n");
     }
}
// now back in the EDT
System.out.println("result = {result}");

do later:
import java.lang.System;
var saying1 = "Hello World!";
var saying2 = "Goodbye Cruel World!";
do later {
     System.out.println(saying1);
}
System.out.println(saying2);
返回:
Goodbye Cruel World!
Hello World!
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics