|
|||||||
|
|
|
![]() |
|
|
Strumenti |
|
|
#1 |
|
Senior Member
Iscritto dal: Jan 2004
Città: ROMA
Messaggi: 2055
|
[JavaFX e Java] inserire una animazione javafx in un JPanel
Salve a tutti,
sono oramai settimane che cerco di ottenere un risultato senza riuscire a capire come fare. La cosa che vorrei fare dovrebbe essere abbastanza semplice, ma con tutto il materiale che ho trovato in giro fin'ora non riesco a fare quanto sto per descrivere. Vorrei inserire una stupida animazione (un disco rosso che cambia dimensione ripetutamente) in javafx, all'interno di un JPanel. Qual'è il modo per farlo? L'animazione è la seguente: Codice:
import javafx.stage.Stage;
import javafx.scene.Scene;
import javafx.scene.shape.Circle;
import javafx.scene.paint.Color;
import javafx.scene.paint.RadialGradient;
import javafx.scene.paint.Stop;
import javafx.animation.Timeline;
import javafx.animation.KeyFrame;
import javafx.animation.Interpolator;
var radius = 15;
Timeline {
repeatCount: Timeline.INDEFINITE,
keyFrames: [
KeyFrame {
time: 0.5s,
canSkip: true
values : [
radius => 5 tween Interpolator.EASEBOTH
]
} // KeyFrame
KeyFrame {
time: 1.0s,
canSkip: true
values : [
radius => 15 tween Interpolator.EASEBOTH
]
} // KeyFrame
] // keyFrames
}.play(); // Timeline
Stage {
title : "Alert"
scene: Scene {
width: 30
height: 30
content: [
Circle {
centerX: 15,
centerY: 15,
radius: bind radius
fill: Color.RED
} // Circle
] // content
} // Scene
} // Stage
Qualcuno mi può aiutare per favore? |
|
|
|
|
|
#3 |
|
Senior Member
Iscritto dal: Jan 2004
Città: ROMA
Messaggi: 2055
|
Non ancora, e ti dirò che l'ho trovato proprio poco dopo il post. Lo provo e ti faccio sapere.
Sai già se funziona? Perché vedo che l'articolo è vecchio, e non vorrei che nel frattempo siano cambiate delle cose. Lì si parla di un workaround, poiché al tempo non era prevista l'integrazione di javafx in java. Grazie! |
|
|
|
|
|
#4 |
|
Senior Member
Iscritto dal: Nov 2004
Città: Tra Verona e Mantova
Messaggi: 4553
|
Non l'ho provato ma se l'han messo nel sito ufficiale ci sono ottime probabilità che funzioni. Circa la possibilità che nel frattempo sia evaporato l'avvertimento c'è ma Sun ha sempre avvertito e mai tolto (basti pensare a "stop" che è deprecated da 15 anni
__________________
Uilliam Scecspir ti fa un baffo? Gioffri Cioser era uno straccione? E allora blogga anche tu, in inglese come me! |
|
|
|
|
|
#5 |
|
Senior Member
Iscritto dal: Jan 2004
Città: ROMA
Messaggi: 2055
|
È un po' strano questo esempio.
Premesso che lavoro con eclipse, dopo aver creato la classe JXScene in un nuovo progetto Java, sembra che voglia farmi creare un nuovo progetto JavaFX in cui mettere sia il file dell'animazione in javafx, sia la seguente classe: Codice:
public class MyScene extends Scene {
init {
content = [
Rectangle { width: 200 height: 200 fill: Color.BLUE },
Text { x: 20 y: 20 content: "Greetings Earthling!" fill: Color.WHITE }
]
}
}
Io vorrei creare un progetto Java, e usare una classe javafx.. qui sembra che voglia fare le cose separatamente, e la cosa mi confonde. |
|
|
|
|
|
#6 |
|
Senior Member
Iscritto dal: Nov 2004
Città: Tra Verona e Mantova
Messaggi: 4553
|
Forse lo fa perchè da Java non è possibile usare sorgenti javafx. Importando il progetto JavaFx in java gli elementi JavaFX sono certamente visti come normali file class.
Se puoi creare un progetto java con elementi javafx (non viceversa) allora il secondo progetto non dovrebbe essere necessario.
__________________
Uilliam Scecspir ti fa un baffo? Gioffri Cioser era uno straccione? E allora blogga anche tu, in inglese come me! |
|
|
|
|
|
#7 |
|
Senior Member
Iscritto dal: Jan 2004
Città: ROMA
Messaggi: 2055
|
Ah, quindi se non ho capito male, usa un secondo progetto JavaFX per creare i .class delle classi javafx, che poi dovrò copiare nel progetto java.
|
|
|
|
|
|
#8 |
|
Senior Member
Iscritto dal: Nov 2004
Città: Tra Verona e Mantova
Messaggi: 4553
|
Sì, più che copiarle userai il jar creato dal progetto javafx come libreria per il progetto java ma il succo dovrebbe essere quello.
__________________
Uilliam Scecspir ti fa un baffo? Gioffri Cioser era uno straccione? E allora blogga anche tu, in inglese come me! |
|
|
|
|
|
#9 |
|
Senior Member
Iscritto dal: Jan 2004
Città: ROMA
Messaggi: 2055
|
Ok, sembrerebbe tutto a posto, ma ottengo un errore di runtime:
Codice:
java.lang.ClassNotFoundException: com.sun.test.MyScene Nel progetto includo i seguenti jar: javafxc.jar, JXScene.jar e MyScene.jar. Solo che questo pezzo di codice sembra non andar bene: Codice:
JXScene scene = new JXScene(); // create a new JXScene
scene.setScript("com.sun.test.MyScene"); // the name of your main JavaFX class
jContentPane.add(scene); // add the scene your swing scene
EDIT: forse ho risolto il problema, mettendo la classe di javafx in un package com.sun.test, in modo da ritrovarmelo nel jar a quel percorso. Ora però mi trovo con il seguente problema: Codice:
Exception in thread "main" java.lang.NoClassDefFoundError: javafx/scene/Scene [...] Caused by: java.lang.ClassNotFoundException: javafx.scene.Scene Ultima modifica di fbcyborg : 12-04-2010 alle 23:56. |
|
|
|
|
|
#10 |
|
Senior Member
Iscritto dal: Nov 2004
Città: Tra Verona e Mantova
Messaggi: 4553
|
Può essere un problema di denominazione (la tua classe MyScene è in un package com.sun.test?) o di classpath e qui bisogna vedere come Eclipse gestisca la faccenda. Non uso Eclipse, non saprei dire come controllare questo secondo caso.
__________________
Uilliam Scecspir ti fa un baffo? Gioffri Cioser era uno straccione? E allora blogga anche tu, in inglese come me! |
|
|
|
|
|
#11 |
|
Senior Member
Iscritto dal: Jan 2004
Città: ROMA
Messaggi: 2055
|
Si, hai ragione, infatti avevo appena finito di editare il post precedente..
|
|
|
|
|
|
#12 |
|
Senior Member
Iscritto dal: Nov 2004
Città: Tra Verona e Mantova
Messaggi: 4553
|
Per il nuovo problema, sembra che non trovi in esecuzione eclipse non trovi le librerie della piattaforma javafx.
__________________
Uilliam Scecspir ti fa un baffo? Gioffri Cioser era uno straccione? E allora blogga anche tu, in inglese come me! |
|
|
|
|
|
#13 |
|
Senior Member
Iscritto dal: Jan 2004
Città: ROMA
Messaggi: 2055
|
Dunque, risolto anche questo.
Mi ero dimenticato di importare tutte le librerie che dice lui, da shared e desktop, ma ora da un altro problema: Codice:
java.lang.NoSuchMethodException: com.sun.test.MyScene.javafx$run$(com.sun.javafx.runtime.sequence.Sequence) Uno ha anche commentato la cosa, e sembra aver avuto lo stesso problema. |
|
|
|
|
|
#14 |
|
Senior Member
Iscritto dal: Nov 2004
Città: Tra Verona e Mantova
Messaggi: 4553
|
Nel post dicono di aggiungere alla classe javafx una funzione:
Codice:
public function run(args : String[]) {
MyScene {}
}
__________________
Uilliam Scecspir ti fa un baffo? Gioffri Cioser era uno straccione? E allora blogga anche tu, in inglese come me! |
|
|
|
|
|
#15 |
|
Senior Member
Iscritto dal: Jan 2004
Città: ROMA
Messaggi: 2055
|
In realtà ho letto anche quanto dicono in questo articolo:
http://karussell.wordpress.com/2009/...afx-from-java/ Solo che non è molto chiaro come faccia a caricare la classe fx in questione.. Comunque provo a fare come hai detto. |
|
|
|
|
|
#16 | |
|
Senior Member
Iscritto dal: Jan 2004
Città: ROMA
Messaggi: 2055
|
Quote:
Anche se provo a mandare in esecuzione la classe fx da Eclipse mi da sempre quell'errore. |
|
|
|
|
|
|
#18 |
|
Senior Member
Iscritto dal: Jan 2004
Città: ROMA
Messaggi: 2055
|
Non saprei. L'ho aggiunto alla fine... Ho provato a metterlo in testa ma è uguale.
|
|
|
|
|
|
#19 |
|
Senior Member
Iscritto dal: Nov 2004
Città: Tra Verona e Mantova
Messaggi: 4553
|
Prova con
http://code.google.com/p/jfxtras/ (è bello dare consigli senza provare prima
__________________
Uilliam Scecspir ti fa un baffo? Gioffri Cioser era uno straccione? E allora blogga anche tu, in inglese come me! |
|
|
|
|
|
#20 |
|
Senior Member
Iscritto dal: Jan 2004
Città: ROMA
Messaggi: 2055
|
Nada
|
|
|
|
|
| Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 17:59.





















