Jump to content

Java FX


AJBM
 Share

Recommended Posts

Bom dia,

Certamente você está falando do ficheiro FXML ?

Se você segue a documentação você vai ver que JavaFX é mais poderoso e simples do que SWING / AWT.

De qualquer forma SWING/AWT não deve ser usado por que JavaFX faz tudo e muito mais do que SWING/AWT.

Claro que é sempre aconselhável o uso Java Advanced Imaging (JAI) ou até mesmo de Java2D / 3D pode ser interligado com JavaFX ...

JavaFX é cross-plataforma e permite o multi-touch e também pode utilizar o CSS. JavaFX é uma maneira de fazer o Rich Internet Application (RIA).

JavaFX vem integrado no JDK 1.7_51. E não precisa de nenhum plug-in Eclipse ou NetBeans. Só precisa de indicar o CLASSPATH para onde està o jfxrt.jar (que esta próximo do famoso rt.jar).

No meu caso o caminho para add external jars... nas referenced libraries do Eclipse :

C:\Program Files\Java\jdk1.7.0_51\jre\lib\jfxrt.jar

Etapa 1: instalar Java SE Development Kit 7u51 :

http://www.oracle.com/technetwork/java/javase/downloads/jdk7-downloads-1880260.html

definir a variável PATH = no meu caso C:\Program Files\Java\jdk1.7.0_51\bin

Etapa 2 : instalar os IDE : Eclipse Kepler (4.3.2) e EDI NetBeans 7.4 (um bom programador java deve trabalhar com os três IDE incluído o Android Studio/IntelliJ)

Etapa 3 : JavaFX Demos and Samples Downloads

http://www.oracle.com/technetwork/java/javase/downloads/jdk7-downloads-1880260.html

instalar este fichiero (javafx_samples-2_2_51-windows.zip) em um repertório com o nome javafx_samples-2_2_51-windows/

duplo clique no fichiero : Ensemble.jar você vai ver 100 exemplos et o código-fonte de cada exemplo.

Para saber mais existem muitos recursos na web : http://edu.makery.ch/projects/learn-javafx/

Cordialmente

Ernest Duarte

Link to comment
Share on other sites

Boas!

Eu já tenho o java instalado já adicionei o jfxrt.jar.

Estou a utilizar o IDE netbeans 7.4, para a parte gráfica estou a utilizar o Scene Builder 1.1.

Estou a tentar fazer um exemplo facil uma caixa de texto e que aparece la com texto por defeito.

FXMLDocument

<?xml version="1.0" encoding="UTF-8"?>
<?import java.lang.*?>
<?import java.util.*?>
<?import javafx.scene.*?>
<?import javafx.scene.control.*?>
<?import javafx.scene.layout.*?>
<AnchorPane id="AnchorPane" prefHeight="200.0" prefWidth="320.0" xmlns:fx="http://javafx.com/fxml/1" xmlns="http://javafx.com/javafx/2.2" fx:controller="javafxapplication6.FXMLDocumentController">
 <children>
<TextField fx:id="txt" layoutX="60.0" layoutY="65.0" prefWidth="200.0" />
 </children>
</AnchorPane>

FXMLDocumentController

public class FXMLDocumentController implements Initializable {
@FXML
private TextField txt;
@Override
public void initialize(URL url, ResourceBundle rb) {
txt= new TextField();
txt.setText("Ola");

}
}

Main

public class JavaFXApplication6 extends Application {

@Override
public void start(Stage stage) throws Exception {
	Parent root = FXMLLoader.load(getClass().getResource("FXMLdocument.fxml"));

	Scene scene = new Scene(root);

	stage.setScene(scene);
	stage.show();
}
/**
 * The main() method is ignored in correctly deployed JavaFX application.
 * main() serves only as fallback in case the application can not be
 * launched through deployment artifacts, e.g., in IDEs with limited FX
 * support. NetBeans ignores main().
 *
 * @param args the command line arguments
 */
public static void main(String[] args) {
	launch(args);
}

}

Duvidas

1- Quando eu estou no Scene builder e construo aplicação o xml é actualizado, mas o FXMLDocumentController não.

2- O TextField não deveria aparecer com o texto que defini.

Link to comment
Share on other sites

Bom dia AJBM,

Resumo : o problema esta na sincronização (mapeamento de ligação) entre a camada de apresentação e os dados : Model-view-presenter (MVP)

Excelente, JavaFX parece um código limpo e que separa bem as diferentes responsabilidades / aspectos (apresentação, tratamento e dados e lógica de negócios).

O problema de sincronização (mapeamento de ligação) entre a camada de apresentação e os dados é bem conhecido.

Para compreender, tem de ter noções sobre a arquitetura do sistema, então vamos de volta sobre os padrão das GUI (Graphical User Interface) modernas :

JSF 2 (XHTML JSF facelets/ JAVA) utiliza uma variante de MVC e as Expressions Languages (EL) para mapeamento de ligação entre a camada apresentação, e os dados e lógica de negócios

XAML / C # (Utilizado nos Windows 8 e WP8) : Para o mapeamento de ligação utilisa a arquitectura Model View ViewModel (MVVM)

A cada ficheiro XAML é associado o famoso "code-behind" em C#

SWING utiliza Model–view–controller (MVC) que você deve implementar mesmo que alguns components implementem jà do inicio o Design Pattern MVC.

JavaFX utiliza Model-view-presenter (MVP) – Martin Fowler

Os ficheiros FXML da classe 'controller' associados é basicamente um "code-behind" para a vista.

Para mais informação sobre arquitectura MVP no JavaFX :

http://programmingwithpassion.wordpress.com/2013/07/21/creating-a-simple-javafx-mvp-example/

http://www.zenjava.com/2011/12/11/javafx-and-mvp-a-smorgasbord-of-design-patterns/

Pense também na Etapa 3 : JavaFX Demos and Samples Downloads

Cordialmente

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
 Share

×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.