Instanciar componentes graficos de ougtra classe

1 resposta
S
boa tarde, pessoal , estou com dificuldades, criei uma classe onde tenho o meu JPanel e ou outros compenentes add nele, quero usar esses mesmo componentes tanto para apllet como para aplicativos, mais nao estou conseguindo instancia-los, se alguem puder me ajudar a izer o que estou fazendo de errado , fico grato minha classe de componentes
package financiamentos;

import java.awt.*;
import java.awt.Color;
import javax.swing.JPanel;  
import javax.swing.JLabel; 
import javax.swing.JTextField;
import javax.swing.JButton;
public class Componentegrafico
{
	private JPanel painel;
	private JLabel la,lb,lc,ld,le,lt;
	private	JTextField va,np,jm,vp,ve;//va valor a vista, np numero de parcela, jm juros mensais, vp valor da parcela, ve valor entrada
	private JButton calcular,limpar;
	public Componentegrafico(){
		
		painel = new JPanel();
		la = new JLabel("VALOR A VISTA");
		lb = new JLabel("JURO MENSAL");
		lc = new JLabel("QUANTIDADE DE PARCELAS");
		ld = new JLabel("VALOR DA PARCELA");
		le = new JLabel("VALOR ENTRADA");
		lt = new JLabel("ANALALISES PARA FINANCIAMENTO");
		va = new JTextField("0");
		np = new JTextField("0");
		jm = new JTextField("0");
		vp = new JTextField("0");
		ve = new JTextField("0");
		calcular = new JButton("CALCULAR");
		limpar = new JButton("LIMPAR");
		painel.setLayout(new GridLayout(14,1));
		
		painel.add(lt);//rotulo anunciando o que se propoem o aplicativo
		painel.add(la); //rotulo valor do produto
		painel.add(va); //editor entrada do valor do produto
		painel.add(lb); //rotulo do juros
		painel.add(jm); //editor entrada do valor de juros
		painel.add(le); //rotulo valor da entrada
		painel.add(ve); //editor entrada do valor da entrada
		painel.add(lc); //rotulo de quantidade de parcelas
		painel.add(np); //editor entrada de numero de parcelas
		painel.add(ld);//rotulo valor da parcela 
		painel.add(vp);//editor de entrada do valor da parcela 
		
		//painel.getContentPane().add(valor); 
		
		}

}
e aqui esta a classe do aplicativo onde gostaria de visualizar os componentes
package financiamentos;

import java.awt.*;
import java.awt.Color;
import javax.swing.JPanel;  
import javax.swing.JLabel; 
import javax.swing.JTextField;
import javax.swing.JButton;
import javax.swing.JFrame; 
public class Visao
{
	private JFrame form;
	Componentegrafico dis = new Componentegrafico();
	public Visao(){
		form = new JFrame();
		form.add(painel);// aqui como add o painel da class componentegrafico no meu jframe
		
		
	}
	public static void main(String args[]){

	}	


}
mais nao esta compilando.

1 Resposta

Nicolas_Fernandes

Como não está compilando, você deve verificar qual linha possui erro e consertá-lo.
Creio que para solucionar o seu problema você deve fazer algo do tipo:

1. Crie a classe ComponenteGrafico. Ela possuirá métodos estáticos que devolvem algum componente que você deseja.
public class ComponenteGrafico {

    private ComponenteGrafico() {  }
    public static JPanel recuperarPanelCalculo() {

        painel = new JPanel();   
        la = new JLabel("VALOR A VISTA");   
        lb = new JLabel("JURO MENSAL");   
        lc = new JLabel("QUANTIDADE DE PARCELAS");   
        ld = new JLabel("VALOR DA PARCELA");   
        le = new JLabel("VALOR ENTRADA");   
        lt = new JLabel("ANALALISES PARA FINANCIAMENTO");   
        va = new JTextField("0");   
        np = new JTextField("0");   
        jm = new JTextField("0");   
        vp = new JTextField("0");   
        ve = new JTextField("0");   
        calcular = new JButton("CALCULAR");   
        limpar = new JButton("LIMPAR");   
        painel.setLayout(new GridLayout(14,1));   
           
        painel.add(lt);//rotulo anunciando o que se propoem o aplicativo   
        painel.add(la); //rotulo valor do produto   
        painel.add(va); //editor entrada do valor do produto   
        painel.add(lb); //rotulo do juros   
        painel.add(jm); //editor entrada do valor de juros   
        painel.add(le); //rotulo valor da entrada   
        painel.add(ve); //editor entrada do valor da entrada   
        painel.add(lc); //rotulo de quantidade de parcelas   
        painel.add(np); //editor entrada de numero de parcelas   
        painel.add(ld);//rotulo valor da parcela    
        painel.add(vp);//editor de entrada do valor da parcela    
           
        return painel;
    }
}
2. Crie sua classe que você gostaria que tivesse seu JPanel. Faça a chamada do método e seja feliz!
public class GUITeste extends JFrame {

    public GUITeste() {

        try {

            UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());
            setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
            setResizable(false);
 
            // aqui você adiciona o JPanel recuperado da classe ComponenteGrafico.
            add( ComponenteGrafico.recuperarPanelCalculo() );
        }
        catch (Exception err) {
            err.printStackTrace();
        }
    }
    public void showDialog() {

        pack();
        setLocationRelativeTo(null);
        setVisible(true);
    }
}
E aí você cria o Main pra testar:
public class Main {

    public static void main(String[] args) {
 
        EventQueue.invokeLater(new Runnable() {

            public void run() {

                GUITeste guiTeste = new GUITeste();
                guiTeste.showDialog();
            }
        });
    }
}

E voilà!
Espero ter ajudado, abraços!

Criado 25 de setembro de 2011
Ultima resposta 25 de set. de 2011
Respostas 1
Participantes 2