Обычная версия
Java форум JavaTalks
форум программистов

Поиск   Пользователи   Группы   Регистрация 
 Профиль   Личные сообщения 

 Вход 

А нужен ли JavaFX
Список форумов
 ->  JavaFX


На страницу 1, 2  След. 
Начать новую тему 
Предыдущая тема :: Следующая тема  
Автор Сообщение
qewr : 28
Новичок

СообщениеАвг 07, 2010 13:45 
Ответить с цитатой
Вот никак не могу понять зачем был нужен очередной скриптовый язык ? Ведь к моменту создания на JVM уже были Beanshell, Rhino (JS), Jython, возможностей которых было вполне достаточно. Тем более с появлением Scala, которая позволяет писать почти как FX, но является компилируемой и статической.
К началу Посмотреть профиль Отправить личное сообщение
Староверъ : 7620
Ктапубеп
Откуда: Elfland

СообщениеАвг 07, 2010 14:49 
Ответить с цитатой
JavaFX - это RIA платформа. К таким платформам также относятся Flash/Flex, SilverLight.
_________________
JTalks Open Source Project, JT Webinars, JT Interview
К началу Посмотреть профиль Отправить личное сообщение Отправить e-mail
qewr : 28
Новичок

СообщениеАвг 07, 2010 14:57 
Ответить с цитатой
Но зачем нужно было выдумывать новый язык (на 95% похожий на существующие) ?
К началу Посмотреть профиль Отправить личное сообщение
Староверъ : 7620
Ктапубеп
Откуда: Elfland

СообщениеАвг 07, 2010 15:48 
Ответить с цитатой
Если он на 95% похож на существующие, то это можно сказать существующий язык, для умельцев, давно работающих со скриптовыми языками, его изучить будет делом одного дня.
А вообще - у разработчиков платформы лучше спрашивать..
Создатели, откликнитесь! =)
_________________
JTalks Open Source Project, JT Webinars, JT Interview
К началу Посмотреть профиль Отправить личное сообщение Отправить e-mail
Grem : 366
Бывалый
Откуда: Украина, Севастополь

СообщениеАвг 07, 2010 15:52 
Ответить с цитатой
всё, что нельзя съесть - нафиг не надо, ага Smile
К началу Посмотреть профиль Отправить личное сообщение
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 
Ответить с цитатой
если сравнить с этим:
Код:
object SampleGUIApp extends SimpleGUIApplication {
   def top = new MainFrame {
       title = "First Scala Swing App"
       size = new java.awt.Dimension(1200, 800)
   }
}

http://scala.sygneca.com/code/scalagui
http://groovy.codehaus.org/Swing+Builder

то видно что выигрыш в объеме кода небольшой, и ресурсы затраченные на разработку FX и изучение новой платформы ушли в никуда.
К началу Посмотреть профиль Отправить личное сообщение
sunflower : 10
Новичок

СообщениеАвг 09, 2010 17:35 
Ответить с цитатой
А что насчет программ посложней? Например работы с графическими списками (пример 2)?
К началу Посмотреть профиль Отправить личное сообщение
qewr : 28
Новичок

СообщениеАвг 09, 2010 17:43 
Ответить с цитатой
http://webpages.charter.net/daltontk/scala/src/RotatingCalculator.scala
http://1.bp.blogspot.com/_UDmxiqUyDAo/R2rs2r2-pTI/AAAAAAAAAA4/JAkHTgINb6I/s1600-h/RotatingCalculator.PNG
К началу Посмотреть профиль Отправить личное сообщение
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 - это очень важно Smile
К началу Посмотреть профиль Отправить личное сообщение
evillive : 810
Постоянный посетитель

СообщениеОкт 06, 2010 12:05 
Ответить с цитатой
Не в обиду ребятам, разрабатывающим JavaFX Script (он получился довольно интересным), но мне больше нравится перспектива писать JavaFX приложения на привычном Java. А для любителей экзотики останутся биндинги к Groovy, Scala и т. п.
К началу Посмотреть профиль Отправить личное сообщение
 
Начать новую тему  Ответить на тему
Страница 1 из 2
На страницу 1, 2  След.
Список форумов
 -> JavaFX


 
Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах


Java and all Java-related trademarks and logos are trademarks or registered trademarks of Oracle Corporation in the United States and other countries.
Это сайт не относится к фирме Oracle Corporation и не поддерживается ею.

© 2006-2010 www.javatalks.ru: форум java программистов
Используется скрипт phpBB © 2001, 2010 phpBB Group

Хостинг от bizname.ru