Estarei ensinando como fazer uma integração dos JinternalFrame em uma aplicação JavaFx, após varias ‘‘Googleadas’’ por ai não obtive sucesso, então resolvi tentar fazer essa integração, como diz o ditado ‘‘A Necessidade faz o Sapo Pular’’ .
- Criaremos uma aplicação JavaFx Desktop, como mostra a imagem.
- E configurar da seguinte forma, no meu caso criei uma aplicação com o nome de ‘‘RaulCrash’’ e não usei o Create Design File, mas você pode fazer da forma que você achar por bem.
- Como eu não criei o meu arquivo mãe, devo criar agora, eu utilizei JavaFx Stage.
- Após criado nosso arquivo nosso Stage, ele virá com o código default, mas por enquanto não iremos mexer nele agora.
- Agora iremos criar um JinternalFrame(nome JIFramePrincipal), após criar adiciona o componente Swing JdesktopPanel (ou Painel da área de Trabalho).
- Depois de adicionado o componente JDesktopPane(ou Painel da área de Trabalho), no JinternalFrame nosso (JIFramePrincipal), você ajusta o tamanho do JdestopPane preenchendo o espaço interno do JIFramePrincipal, depois iremos alterar o acesso ao nosso objeto JdesktopPanel , nas propriedades do mesmo, aba Código, Modificadores de Variáveis: altera para as opções ‘‘public’’ e ‘‘static’’.
- Após o nosso objeto JdestopPanel configurado, adicional o código dentro do método construtor do nosso JIFramePrincipal, para deixar o nosso JinternalFrame sem as bordas e o cabeçalho, pra deixar mais bonito nosso aplicativo.
public JIFramePrincipal() {
initComponents();
((BasicInternalFrameUI) this.getUI()).setNorthPane(null); //retirar o painel superior
this.setBorder(null);//retirar bordas
}
- Agora iremos adcionar esse código abaixo na nosso JIFramerincipal, esse método irá exibir as nossas telas dentro do nosso JdesktopPane(criei algumas telas para exemplo, cria uma ou duas ou quantas telas que você quiser e as ajuste-as conforme o seu gosto).
public static JInternalFrame JIPessoa;
public static JInternalFrame JIContaBanco;
public static JInternalFrame JITitulos;
public static void Exibir(String Tela) {
//PESSOA
if (Tela.equals("CAD_PES")) {
if (JIPessoa == null || JIPessoa.isVisible() == false) {
JIPessoa = new JICad_Pessoa();
JDestopPrincipalManager.add(JIPessoa);
JIPessoa.setVisible(true);
} else {
JIPessoa.setVisible(false);
JIPessoa.setVisible(true);
}
}
//CONTA BANCARIA
if (Tela.equals("CAD_CONTA")) {
if (JIContaBanco == null || JIContaBanco.isVisible() == false) {
JIContaBanco = new JICad_Conta();
JDestopPrincipalManager.add(JIContaBanco);
JIContaBanco.setVisible(true);
} else {
JIContaBanco.setVisible(false);
JIContaBanco.setVisible(true);
}
}
//LANÇAMENTOS DE TITULOS
if (Tela.equals("CAD_TITULO")) {
if (JITitulos == null || JITitulos.isVisible() == false) {
JITitulos = new JILanc_Titulos();
JDestopPrincipalManager.add(JITitulos);
JITitulos.setVisible(true);
} else {
JITitulos.setVisible(false);
JITitulos.setVisible(true);
}
}
}
- Agora iremos criar novo arquivo Fx limpo com nome DesktopFx, (Novo arquivo->Empty JavaFx File), e adicionaremos o código que irá receber o nosso JIFramePrincipal.
package componSwing;
import javafx.ext.swing.SwingComponent;
import javax.swing.JInternalFrame;
import javax.swing.JComponent;
/**
* @author Raul_
*/
// place your code here
public class DesktopFx extends SwingComponent{
var Desktop : JInternalFrame;
override protected function createJComponent () : JComponent {
Desktop = new JIFramePrincipal;
Desktop.setVisible(true);
return Desktop;
}
}
- Agora iremos voltar ao nosso arquivo Fx principal ‘‘Inicio.fx’’, e iremos adcionar o botões para chamar as telas que criamos, você pode esta implementando efeitos melhorando o aspecto do seu menu conforme o seu gosto.
package inicio;
import javafx.stage.Stage;
import javafx.scene.Scene;
import javafx.scene.text.Text;
import javafx.scene.text.Font;
import javafx.scene.control.Button;
import componSwing.JIFramePrincipal;
import componSwing.DesktopFx;
import javafx.scene.paint.Color;
/**
* @author Raul_
*/
Stage {
title: "JavaFx com JInternalFrame"
scene: Scene {
width: 1000
height: 950
fill: Color.BLACK
content: [
//Componente criado
DesktopFx {
layoutX: 10
layoutY: 60
width: 980
height: 850
}
Button {
layoutX: 10
layoutY: 15
text: "Cadastro de Pessoas"
action: function() {
JIFramePrincipal.Exibir("CAD_PES");
}
}
Button {
layoutX: 145
layoutY: 15
text: "Cadastro de Contas Bancarias"
action: function() {
JIFramePrincipal.Exibir("CAD_CONTA");
}
}
Button {
layoutX: 320
layoutY: 15
text: "Lançamentos de Titulos"
action: function() {
JIFramePrincipal.Exibir("CAD_TITULO");
}
}
]
}
}
É isso ai pessoal, me desculpem qualquer coisa por erro de redundância ou por ter falado alguma besteira, mas queria compartilhar essa informação com vocês. =D
Video da Aplicação pronta : [youtube]http://www.youtube.com/watch?v=rhCUhLqnk6o[/youtube]