Javafx

5 respostas
fabiolp

Pessoal,
alguém sabe criar uma tabela com javafx 1.2?
Alguns tutoriais estão quebrados por não existir mais o SwingTable nessa nova versão do SDK.
Eu sei uma maneira de criar um tabela com javafx pegando

SwingComponent.wrap(tabela)

Alguém tem uma solução que não precise utilizar toda a lógica do Swing para gerar a tabela e depois colocar dentro de um SwingComponent do javafx.

5 Respostas

Jesuino_Master

Existem várias soluções para Tabela no JavaFX…
Um possível é fazer bind de componentes Swing no JavaFX, então você poderia usar a JTable…

Olhe estes exemplos: http://jfx.wikia.com/wiki/SwingComponents

Outra solução você pode encontrar no JFXtras, ou o Xenon Data Grid: http://www.jroller.com/peter_pilgrim/entry/nelson_framework_m1_0_xenon

[]'s

marcelo.felix

infelizmente o JavaFX ainda esta muito pobre de componente.

Você pode utilizar uma biblioteca de terceiros ou criar um componente de tabela totalmente novo

provavelmente os componentes viram na próxima versão do JavaFX (1.5 ou 2.0), essa versão esta prevista para o final do ano

t+

Jesuino_Master

Está pobre de componentes mas você pode, repito, usar todos os componentes do JavaSwing…

Então os componentes se limitam aos componentes do JavaFX mais os JavaSwing “amarráveis” em JavaFX, não?

marcelo.felix

Sim podemos usar os componentes Swing, mas esse componentes tem limitação de integração com scene graph e só existem no JavaFX desktop profile.

Jesuino_Master
Sim podemos usar os componentes Swing, mas esse componentes tem limitação de integração com scene graph e só existem no JavaFX desktop profile.

Verdade, porque fazemos Wrap com os componentes Swing, então a API padrão do Java deve estar presente... Mas acho que não existem limitações, porque o resultado é um Node...

Exemplo:

import javax.swing.JButton;

import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

import javafx.ext.swing.SwingComponent;


class MySwingButton extends SwingComponent{

    var button: JButton;

    public var text: String on replace{
        button.setText(text);
    };
    
    public var action: function();

    public override function createJComponent(){
        button = new JButton();
        button.addActionListener(
            ActionListener{
                public override function actionPerformed(e:ActionEvent){
                    action();
                }
            }
        );
        return button;
    }
}
E o uso:
import javafx.stage.Stage;
import javafx.scene.Scene;

Stage {
    title: "Swing Component Example"
    scene: Scene {
        width: 250
        height: 100
        content: [
            MySwingButton{
                text: "Click Me!"
                action: function(){
                    println("Hello World!");
                }
            }
        ]
    }
}
Criado 9 de julho de 2009
Ultima resposta 5 de out. de 2009
Respostas 5
Participantes 3