Dúvida para criar um componente de visualizacao de Nota Fiscal em Swing

1 resposta
O

Olá !

Gostaria da opinião do pessoal mais experiente de qual jeito mais adequado seria para montar um componente.

O componente que estou montando é para visualizacao de uma Nota Fiscal em Swing.

Logo, tenho uma classe NotaFiscal, mais ou menos como a do codigo abaixo:
import java.sql.Timestamp;

public class NotaFiscal {
	private int numeroDaNota;
	private Timestamp dataDeEmissao;
	private String naturezaDeOperacao;
	private int cfop;
	
	// ...
	
	// get/set
}

A minha dúvida principal seria: vocês passariam o objeto NotaFiscal inteirinho para esse componente para exibir as informações ?
Ou criaria novamente todos os campos da class NotaFiscal nesse componente em questão, criando-se os respectivos get's e set's ?
Ou tanto faz ? Como vocês fariam ?

Puxa, não só esses, mas se tiver algum outro jeito também, aguardo sugestôes/conselhos.

Vou deixar um pequena codificao de exemplo de cada uma das opções, só para vocês terem uma idéia melhor do que estou falando ok.

Modelo1: passe se o objeto NotaFiscal para o componente.
import java.awt.Graphics;
import javax.swing.JComponent;

public class NotaFiscalComponenteModelo1 extends JComponent {

	private static final long serialVersionUID = 1L;
	
	private NotaFiscal notaFiscal;

	public NotaFiscalComponenteModelo1(NotaFiscal notaFiscal) {
		this.notaFiscal = notaFiscal;
	}
	
	@Override
	public void paint(Graphics g) {
		super.paint(g);
		
		// obtem as informacoes da variavel notaFiscal
		// para exibir as informações.
		
	}

}
Modelo2: O componente possui todos os campos da classe NotaFiscal e seu preenchimento deve ser feito em alguma outra camada.
import java.awt.Graphics;
import java.sql.Timestamp;

import javax.swing.JComponent;

public class NotaFiscalComponenteModelo1 extends JComponent {

	private static final long serialVersionUID = 1L;
	
	private int numeroDaNota;
	private Timestamp dataDeEmissao;
	private String naturezaDeOperacao;
	private int cfop;

	public int getNumeroDaNota() {
		return numeroDaNota;
	}

	public void setNumeroDaNota(int numeroDaNota) {
		this.numeroDaNota = numeroDaNota;
	}

	public Timestamp getDataDeEmissao() {
		return dataDeEmissao;
	}

	public void setDataDeEmissao(Timestamp dataDeEmissao) {
		this.dataDeEmissao = dataDeEmissao;
	}

	// restante dos get's/set's
	
	@Override
	public void paint(Graphics g) {
		super.paint(g);
		
		// utiliza as informacoes desta classe
		// para exibir as informações.
		
	}

}

Obrigado e aguardo sugestoes !

1 Resposta

M

Modelo 1. Reaproveitamento de código e orientação a objetos. Se fosse usar o modelo 2 não haveria porque criar um objeto NotaFiscal.

Criado 3 de fevereiro de 2010
Ultima resposta 3 de fev. de 2010
Respostas 1
Participantes 2