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

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

 Вход 

передача параметров аплету на javafx
Список форумов
 ->  JavaFX


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

СообщениеДек 10, 2010 21:06 
Ответить с цитатой
есть приложение на java fx, есть html страница , как передать параметры с этой страницы в приложение?
мне нужно что то подобное передачи свинговскому апплету: <param name value>
заранее спасибо
К началу Посмотреть профиль Отправить личное сообщение
Imix : 434
Бывалый
Откуда: Петербург

СообщениеДек 12, 2010 16:21 
Ответить с цитатой
Решил разобраться с этой задачкой на будущее. Вдруг пригодиться? Smile
В итоге два варианта:
1. Статика. Метод FX.getArgument( <key> )
html
Код:
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>PassParameters</title>
</head>
<body>
<h1>PassParameters</h1>
<script src="http://dl.javafx.com/1.3/dtfx.js"></script>
<script>
    javafx(
        {
              archive: "PassParameters.jar",
              draggable: true,
              width: 200,
              height: 200,
              code: "passparameters.Main",
              name: "PassParameters"
        }, {
              key: "Value"
        }
    );
</script>
</body>
</html>

javafx
Код:
package passparameters;

import javafx.stage.Stage;
import javafx.scene.Scene;
import javafx.scene.text.Text;
import javafx.scene.text.Font;
import javafx.scene.paint.Color;
import javafx.scene.effect.DropShadow;

/**
 * @author Imix
 */

public function run(args: String[]) {
    Stage {
        title: "My Applet"
        width: 200
        height: 200
        scene: Scene {
            content: Text {
                x: 10 y: 30
                font: Font { size: 20 }
                fill: Color.BLUE
                effect: DropShadow { offsetX: 3 offsetY: 3 }
                content: "Parameter: {FX.getArgument( "key" )}"
            }
        }
    }
}

2. Динамика. JavaScript Bridge. Думаю, что на практике это будет более востребовано.
html
Код:
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>PassParameters</title>
<script language="javascript">
function pasNameUser() {
    try {
        var eL=document.getElementById;
      var app = eL("app");
      app.script.message ="Привет: "+eL("NameUser").value;
    } catch (e) {
        alert(e);
    }
}
</script>
</head>
<body>
<h1>PassParameters</h1>
<script src="http://dl.javafx.com/1.3/dtfx.js"></script>
<script>
    javafx(
        {
              archive: "PassParameters.jar",
              draggable: true,
              width: 200,
              height: 200,
              code: "passparameters.Main",
              name: "PassParameters",
              id: "app"
        }
    );
</script>
Ваше имя:<input type="text" id="NameUser"/>
<input type="button" value="pasNameUser" onClick="pasNameUser()"/>
</body>
</html>

javafx
Код:
package passparameters;

import javafx.stage.Stage;
import javafx.scene.Scene;
import javafx.scene.text.Text;
import javafx.scene.text.Font;
import javafx.scene.paint.Color;
import javafx.scene.effect.DropShadow;

/**
 * @author Imix
 */
public var message = "Привет: User";

public function run(args: String[]) {
    Stage {
        title: "My Applet"
        width: 200
        height: 200
        scene: Scene {
            content: Text {
                x: 10 y: 30
                font: Font { size: 24 }
                fill: Color.BLUE
                effect: DropShadow { offsetX: 3 offsetY: 3 }
                content: bind message
            }
        }
    }
}

P.S. Все это здорово напоминает программирование Rich Internet Application на Flash/Flex
К началу Посмотреть профиль Отправить личное сообщение
BattyBlue : 31
Новичок

СообщениеДек 14, 2010 21:12 
Ответить с цитатой
Второй вариант не работает, не понятно как происходит передача параметров приложению
К началу Посмотреть профиль Отправить личное сообщение
Imix : 434
Бывалый
Откуда: Петербург

СообщениеДек 14, 2010 23:19 
Ответить с цитатой
Все работает. Вы где то были не внимательны.
Javascript "видит" приложение javafx /public var/c заданным id, как элемент DOM. Протестируйте мой пример ничего не меняя.
К началу Посмотреть профиль Отправить личное сообщение
Imix : 434
Бывалый
Откуда: Петербург

СообщениеДек 14, 2010 23:46 
Ответить с цитатой

К началу Посмотреть профиль Отправить личное сообщение
BattyBlue : 31
Новичок

СообщениеДек 21, 2010 21:45 
Ответить с цитатой
не знаю, у меня ваш пример не работает, первый вариант работает, но только если запускать из нэтбинса, если с хостинга то не работает
К началу Посмотреть профиль Отправить личное сообщение
Imix : 434
Бывалый
Откуда: Петербург

СообщениеДек 22, 2010 0:02 
Ответить с цитатой
BattyBlue писал(а):
не знаю, у меня ваш пример не работает, первый вариант работает, но только если запускать из нэтбинса, если с хостинга то не работает

NetBeans это всего лишь инструмент, а не руководство к действию Smile
Вам удалось запустить на хостинге хоть какой нибудь JavaFX applet а-ля HelloWorld из любого tutorial'а?
К началу Посмотреть профиль Отправить личное сообщение
BattyBlue : 31
Новичок

СообщениеДек 22, 2010 0:56 
Ответить с цитатой
мне удалось запустить все кроме вашего=)
К началу Посмотреть профиль Отправить личное сообщение
Imix : 434
Бывалый
Откуда: Петербург

СообщениеДек 22, 2010 3:17 
Ответить с цитатой
BattyBlue писал(а):
мне удалось запустить все кроме вашего=)

Поздравляю! Smile
В доказательство того, что чудеса еще встречаются Smile , сбрасываю вам в личку ссылку на реальный хостинг, где припаркована страничка с работоспособным примером -JavaFX applet PassParameters.
P.S.
Компиляция: NetBeans 6.9.1 Wink ,Java 1.6.0_22,Тестирование:браузер IE7
С интересом жду ваш следующий пост...
К началу Посмотреть профиль Отправить личное сообщение
BattyBlue : 31
Новичок

СообщениеДек 22, 2010 14:49 
Ответить с цитатой
частично работает)
приложение работает, но при вводе имени вылетает эксепшен, думаю это что то с настройками браузера, те передачи параметра как таковой нет)
но приложение работает у меня же оно не пашет вообще, так что вы правы)
К началу Посмотреть профиль Отправить личное сообщение
Imix : 434
Бывалый
Откуда: Петербург

СообщениеДек 22, 2010 16:23 
Ответить с цитатой
BattyBlue писал(а):
думаю это что то с настройками браузера

Это возможно...
Судя, по логам сервера, вы пытались протестировать приложение в разных браузерах Smile .Например,для Firefox, можно попробовать установить sun-java6-plugin. Какие конкретно вылетают Exception?
К началу Посмотреть профиль Отправить личное сообщение
BattyBlue : 31
Новичок

СообщениеДек 25, 2010 1:10 
Ответить с цитатой
у меня напрочь вылетело из головы)
что то типо input output exception
К началу Посмотреть профиль Отправить личное сообщение
BattyBlue : 31
Новичок

СообщениеДек 30, 2010 15:09 
Ответить с цитатой
Ну вообщем смог я наконец реализовать динамику, использовал ваш первый сособ(т к другой так и не заработал=))
с помощью сервлетов все довольно просто)
К началу Посмотреть профиль Отправить личное сообщение
Imix : 434
Бывалый
Откуда: Петербург

СообщениеДек 30, 2010 15:46 
Ответить с цитатой
BattyBlue писал(а):
Ну вообщем смог я наконец реализовать динамику, использовал ваш первый сособ(т к другой так и не заработал=))
с помощью сервлетов все довольно просто)

Это не мои способы Smile , а стандартные возможности передать параметры апплету в контексте браузера. Так же, как и решение обратной задачи,-вызов внешней javascript функции из JavaFX applet .
Поделитесь с общественностью вашим решением увязки сервлета-JavaFX applet'а?
К началу Посмотреть профиль Отправить личное сообщение
BattyBlue : 31
Новичок

СообщениеДек 30, 2010 17:02 
Ответить с цитатой
Код:
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>PassParameters</title>
</head>
<body>
<h1>PassParameters</h1>
<form method="post" action="Applet">
      <input name="num" type="text" maxlength="15" size="15">

      <input type="SUBMIT">
</form>
<script src="http://dl.javafx.com/1.3/dtfx.js"></script>
<script>
    javafx(
        {
              archive: "PassParameters.jar",
              draggable: true,
              width: 200,
              height: 200,
              code: "passparameters.Main",
              name: "PassParameters"
        }, {
              key: "<%=Applet.t%>"
        }
    );
</script>
</body>
</html>

В переменной t содержиться нужная строка.
К началу Посмотреть профиль Отправить личное сообщение
 
Начать новую тему  Ответить на тему
Страница 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