|
Java форум JavaTalks форум программистов
|
|
|
|
| Предыдущая тема :: Следующая тема |
| Автор |
Сообщение |
BattyBlue : 31 Новичок
|
Дек 10, 2010 21:06 |
|
|
есть приложение на java fx, есть html страница , как передать параметры с этой страницы в приложение?
мне нужно что то подобное передачи свинговскому апплету: <param name value>
заранее спасибо |
|
|
|
 |
Imix : 434 Бывалый Откуда: Петербург
|
Дек 12, 2010 16:21 |
|
|
Решил разобраться с этой задачкой на будущее. Вдруг пригодиться?
В итоге два варианта:
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 это всего лишь инструмент, а не руководство к действию
Вам удалось запустить на хостинге хоть какой нибудь JavaFX applet а-ля HelloWorld из любого tutorial'а? |
|
|
|
 |
BattyBlue : 31 Новичок
|
Дек 22, 2010 0:56 |
|
|
| мне удалось запустить все кроме вашего=) |
|
|
|
 |
Imix : 434 Бывалый Откуда: Петербург
|
Дек 22, 2010 3:17 |
|
|
| BattyBlue писал(а): |
| мне удалось запустить все кроме вашего=) |
Поздравляю!
В доказательство того, что чудеса еще встречаются , сбрасываю вам в личку ссылку на реальный хостинг, где припаркована страничка с работоспособным примером -JavaFX applet PassParameters.
P.S.
Компиляция: NetBeans 6.9.1 ,Java 1.6.0_22,Тестирование:браузер IE7
С интересом жду ваш следующий пост... |
|
|
|
 |
BattyBlue : 31 Новичок
|
Дек 22, 2010 14:49 |
|
|
частично работает)
приложение работает, но при вводе имени вылетает эксепшен, думаю это что то с настройками браузера, те передачи параметра как таковой нет)
но приложение работает у меня же оно не пашет вообще, так что вы правы) |
|
|
|
 |
Imix : 434 Бывалый Откуда: Петербург
|
Дек 22, 2010 16:23 |
|
|
| BattyBlue писал(а): |
| думаю это что то с настройками браузера |
Это возможно...
Судя, по логам сервера, вы пытались протестировать приложение в разных браузерах .Например,для 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 писал(а): |
Ну вообщем смог я наконец реализовать динамику, использовал ваш первый сособ(т к другой так и не заработал=))
с помощью сервлетов все довольно просто) |
Это не мои способы , а стандартные возможности передать параметры апплету в контексте браузера. Так же, как и решение обратной задачи,-вызов внешней 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 |
|
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете голосовать в опросах
|
|