|
Java форум JavaTalks форум программистов
|
|
|
|
| Предыдущая тема :: Следующая тема |
| Автор |
Сообщение |
qewr : 28 Новичок
|
Авг 07, 2010 13:45 |
|
|
| Вот никак не могу понять зачем был нужен очередной скриптовый язык ? Ведь к моменту создания на JVM уже были Beanshell, Rhino (JS), Jython, возможностей которых было вполне достаточно. Тем более с появлением Scala, которая позволяет писать почти как FX, но является компилируемой и статической. |
|
|
|
 |
Староверъ : 7620 Ктапубеп Откуда: Elfland
|
Авг 07, 2010 14:49 |
|
|
|
|
|
|
 |
qewr : 28 Новичок
|
Авг 07, 2010 14:57 |
|
|
| Но зачем нужно было выдумывать новый язык (на 95% похожий на существующие) ? |
|
|
|
 |
Староверъ : 7620 Ктапубеп Откуда: Elfland
|
Авг 07, 2010 15:48 |
|
|
Если он на 95% похож на существующие, то это можно сказать существующий язык, для умельцев, давно работающих со скриптовыми языками, его изучить будет делом одного дня.
А вообще - у разработчиков платформы лучше спрашивать..
Создатели, откликнитесь! =) _________________ JTalks Open Source Project, JT Webinars, JT Interview |
|
|
|
 |
Grem : 366 Бывалый Откуда: Украина, Севастополь
|
Авг 07, 2010 15:52 |
|
|
всё, что нельзя съесть - нафиг не надо, ага  |
|
|
|
 |
sunflower : 10 Новичок
|
Авг 09, 2010 15:08 |
|
|
JavaFX в первую очередь позиционируется как язык для созданий GUI.
Предлагаю взять две небольшие програмки и посмотреть, чем их реализация на JavaFX отличается от реализации на други скриптовых языках.
Программа 1: "Hello World"
JavaFX
| Код: |
import javafx.stage.*;
import javafx.scene.*;
import javafx.scene.text.*;
import javafx.scene.paint.*;
import javafx.scene.effect.*;
Stage {
title: "Hello World!"
scene: Scene {
width: 250
height: 80
content: Text {
x: 10 y: 30
fill: Color.BLUE
font: Font { size: 30 }
content: "Hello World!"
effect: DropShadow {
radius: 5
offsetX: 5
offsetY: 5
color: Color.BLACK
}
}
}
}
|
 |
|
|
|
 |
sunflower : 10 Новичок
|
Авг 09, 2010 15:40 |
|
|
Программа 2: Добавление/удаление названия животных в/из списка.
JavaFX
| Код: |
import javafx.stage.Stage;
import javafx.scene.Scene;
import javafx.scene.layout.*;
import javafx.scene.control.*;
var animals = ["dog", "cat", "mouse"];
var animal = "lion";
var list:ListView;
Stage {
title: "Animals List"
scene: Scene {
width: 300
height: 400
stylesheets: "{__DIR__}style.css"
content: VBox {
content: [
HBox {
spacing: 5
content: [
Label { text: "Animal:" }
TextBox { text: bind animal with inverse }
]
}
list = ListView {
items: bind animals
onMouseClicked: function(e){
animal = animals[list.selectedIndex];
}
}
HBox {
content: [
Button {
text: "Add Animal"
action: function() {
insert animal into animals
}
}
Button {
text: "Delete Animal"
action: function() {
delete animals[list.selectedIndex];
}
}
]
}
]
}
}
} |
 |
|
|
|
 |
qewr : 28 Новичок
|
Авг 09, 2010 17:13 |
|
|
|
|
|
|
 |
sunflower : 10 Новичок
|
Авг 09, 2010 17:35 |
|
|
| А что насчет программ посложней? Например работы с графическими списками (пример 2)? |
|
|
|
 |
qewr : 28 Новичок
|
Авг 09, 2010 17:43 |
|
|
|
|
|
|
 |
sunflower : 10 Новичок
|
Авг 09, 2010 18:28 |
|
|
Вот, набросал калькулятор на JavaFX.
| Код: |
import javafx.stage.*;
import javafx.scene.*;
import javafx.scene.layout.*;
import javafx.scene.control.*;
var res: Number;
var value:Number;
var op: Operation;
var display: String;
class Operation {
public var name: String;
public var action: function(Number, Number):Number;
}
var operations = [
Operation { name: "+" action: function(a, b ) { a + b } }
Operation { name: "-" action: function(a, b ) { a - b } }
Operation { name: "*" action: function(a, b ) { a * b } }
Operation { name: "/" action: function(a, b ) { a / b } }
];
function convert(s: String):Number{
try{ return Number.parseFloat(s);} catch(e){ } return 0;
}
Stage {
title: "Application title"
scene: Scene {
width: 250
height: 250
content: VBox {
content: [
TextBox {
text: bind display with inverse
columns: 15
editable: false
}
HBox {
content: [
for (operation in operations) Button {
text: operation.name
action: function() {
op = operation;
res = convert(display);
display = "";
}
}
Button {
text: "="
action: function() {
value = convert(display);
res = op.action(res, value);
display = "{res}";
}
}
]
}
Tile {
columns: 3
rows: 3
content: for (i in [0..9]) Button {
text: "{i}"
action: function(){
display = "{display}{i}";
}
}
}
]
}
}
}
|
 |
|
|
|
 |
sunflower : 10 Новичок
|
Авг 09, 2010 18:33 |
|
|
Отличие в калькуляторах (JavaFX и Scala) в следующем:
В Scala сначала определяется gridPanel, которая содержит кнопки и метки, потом определяется calculatorPanel, потом frame и scenepanel.
В JavaFX это все вложено в виде дерева. Основное окно содержит сцену, сцена содержит layout-ы, layout-ы содержат кнопки, метки и другие управляющие элементы.
Пройдясь по JavaFX коду можно сразу увидеть, где и как расположены графические компоненты.
В Scala надо будет разворачивать программу с конца к началу (или от начала к концу, главное что это будет последовательный, а не вложенный код). |
|
|
|
 |
sunflower : 10 Новичок
|
Авг 10, 2010 15:16 |
|
|
На JavaFX можно смотреть следующим образом.
С одной стороны это способ описания данных (наподобие xml, когда одни теги включают атрибуты и вложенные теги).
С другой стороны это язык программирования, который облегчает создание и работу с такими типами данных.
Например при создании компонент можно использовать циклы и условные выражения:
| Код: |
Group{
content: for(i in [10..1 step -1]) Circle{
radius: i * 10
centerX: 100
centerY: 100
fill: if(i mod 2 ==0 ) Color.ORANGE else Color.YELLOW
}
}
|
В итоге программы, которые имеют вид "что-то состоит из чего-то" довольно просто описываются на JavaFX.
GUI программы это лишь один из случае применения языка JavaFX. |
|
|
|
 |
tolyanchik : 61 Новичок
|
Окт 06, 2010 7:45 |
|
|
По следам Oracle OpenWorld можно сказать, что JavaFX фактически рождается заново. Для разработки теперь будет использоваться Java.
Но также можно будет использовать и другие jvm-языки. Хардварное ускорение графики, полностью новый графический стек и куча других улучшений. Версия 2.0 ожидается в 2011.
Разумеется куча времени потрачена практически впустую и будет ооооочень трудно сравниться с Сильверлайтом... но оракулы - большая компания и они вполне четко понимают - RIA - это очень важно  |
|
|
|
 |
evillive : 810 Постоянный посетитель
|
Окт 06, 2010 12:05 |
|
|
| Не в обиду ребятам, разрабатывающим JavaFX Script (он получился довольно интересным), но мне больше нравится перспектива писать JavaFX приложения на привычном Java. А для любителей экзотики останутся биндинги к Groovy, Scala и т. п. |
|
|
|
 |
|
|
Страница 1 из 2 На страницу 1, 2 След. |
Список форумов
-> JavaFX |
|
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете голосовать в опросах
|
|