Ajuda com trabalho, finalização

1 resposta
K

Boa tarde, estou finalizando um crud em java para um trabalho da faculdade.
Preciso do auxilio em alguns quesitos. Tenho um Jframe com jdesktop, chamando JinternalFrames, gostaria de um método para criá-los, visto que estou fazendo isso repetindo muitas vezes:

private void criaJanelaFrmCadProdutos() {
	// se não foi instanciado ou se foi fechado, cria um novo
	if (frmcadprodutos == null || frmcadprodutos.isClosed()) {
		frmcadprodutos  = new frmCadProdutos();
		desktopPane.add(frmcadprodutos);
		frmcadprodutos.setClosable(true);
		frmcadprodutos.setVisible(true);
		frmcadprodutos.setPosicao();
	}
	// senão envia a janela aberta pra frente
	else {
		frmcadprodutos.toFront();
	}
}

E no jmenu bar pra chamar

private void menuProdutosActionPerformed(java.awt.event.ActionEvent evt) {
	criaJanelaFrmCadProdutos();
}

Estou repetindo esse código diversas vezes pra chamar as 10 paginas diferentes. Alguma sugestão?

Também gostaria de implementar algo para controle da execução do sistema, por exemplo, para caso de venda como mensalidade, e o cliente não pagar, bloquear a aplicação. Eu penso no seguinte: uma consulta em um bd online com as informações se esta pago ou não, porém não tenho nenhuma ideia.

Obrigado.

1 Resposta

Lucas_Camara

Você pode pensar em criar um factory. Veja essa ideia:

import java.util.HashMap;
import java.util.Map;

import javax.swing.JInternalFrame;

public class FrameFactory {
	public static final Map<String, JInternalFrame> FRAMES = new HashMap<String, JInternalFrame>();
	
	public JInternalFrame create(Class<JInternalFrame> klass) throws InstantiationException, IllegalAccessException {
		String simpleName = klass.getSimpleName();
		JInternalFrame jFrame = FRAMES.get(simpleName);
		
		if(jFrame == null) {
			jFrame = klass.newInstance();
			jFrame.setClosable(true);
			jFrame.setVisible(true);
			FRAMES.put(simpleName, jFrame);
		}
		
		return jFrame;
	}
}
Criado 14 de julho de 2016
Ultima resposta 14 de jul. de 2016
Respostas 1
Participantes 2