Como executar o seguinte codigo em java

2 respostas
eltonbonato

gostaria de saber como executar o codigo em java que está abaixo.
usando eclipse e netbeans.

package example02Swing;

import java.awt.Container;
import java.awt.GridLayout;
import java.awt.Point;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.io.IOException;
import java.util.Observable;
import java.util.Observer;

import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JTextField;

import example01.ObjectIO;
import example01.Pessoa;

public class Tela extends JFrame implements Observer
{
	private static final long serialVersionUID = 1L;
	private int largura;
	private int altura;
	private int larguraTela;
	private int alturaTela;
	private Pessoa listaPessoas[];
	private JTextField textTelefone;
	private JTextField textEndereco;
	private JTextField textNome;
	private String filename;
	private Thread processo;

	/**
	 * Construtor da classe Tela
	 */
	public Tela()
	{
		super("Cadastro de clientes");
		inicializarVariaveis();		
	}

	/**
	 * 	Metodo responsavel por inicializar as variaveis
	 */
	private void inicializarVariaveis()
	{
		largura = 1024;
		altura = 768;
		larguraTela = 640;
		alturaTela = 480;
		listaPessoas = new Pessoa[40];
		textTelefone = new JTextField(10);
		textEndereco = new JTextField(10);
		textNome = new JTextField(10);
		filename = "Usuarios.ser";
	}

	/**
	 * Metodo que inicia componentes da tela
	 */
	protected void iniciarComponentes()
	{
		setSize(larguraTela, alturaTela);

		Container contentPane = getContentPane();
  		contentPane.setLayout(new GridLayout(4,1));

		JLabel labelNome = new JLabel("Nome: ");		
		JLabel labelEndereco = new JLabel("Endereço: ");
		JLabel labelTelefone = new JLabel("Telefone: ");
		JButton btCadastrar = new JButton("Cadastrar");
		JButton btAtualizar = new JButton("Visualizar");

		btAtualizar.setSize(10, 10);
		labelNome.setHorizontalAlignment(JTextField.RIGHT);
		labelEndereco.setHorizontalAlignment(JTextField.RIGHT);
		labelTelefone.setHorizontalAlignment(JTextField.RIGHT);

		btCadastrar.addActionListener(new ActionListener()
		{
			public void actionPerformed(ActionEvent e)
			{	
				try
				{
					Pessoa p1 = new Pessoa(textNome.getText(),
										   textEndereco.getText(),
										   textTelefone.getText());

					listaPessoas[pessoasLength()] = p1;
					ObjectIO.writeSerializableObject(listaPessoas, filename);
				}
				catch (IOException e1)
				{
					e1.printStackTrace();
				}
			}			
		});

		btAtualizar.addActionListener(new ActionListener()
		{
			public void actionPerformed(ActionEvent e)
			{
				executaProcesso();
			}			
		});						

		contentPane.add(labelNome);
		contentPane.add(textNome);
		contentPane.add(labelEndereco);
		contentPane.add(textEndereco);
		contentPane.add(labelTelefone);
		contentPane.add(textTelefone);
		contentPane.add(btCadastrar);
		contentPane.add(btAtualizar);

		pack();

		setLocation(new Point(((largura-250)/2), ((altura-200)/2)));

		setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		setVisible(true);
	}

	/**
	 * Metodo que cria um processo e o inicia, caso esteja null
	 */
	public void executaProcesso()
	{
		if(processo == null)
		{
			processo = new Thread(new Gravar(this, filename));
			processo.start();
		}
		else
		{
			System.out.println("O processo ainda está em execução");
		}
	}

	/**
	 * Metodo responsável por contabilizar o dados no arquivo
	 * @return retorna a quantidade de objetos do Pessoa que estão no arquivo
	 */
	protected int pessoasLength()
	{
		Pessoa vetor[];
		Pessoa p1;
		int cont = 0;

		try
		{
			vetor = (Pessoa[]) ObjectIO.readSerializableObject(filename);

			for (int i = 0; i < vetor.length; i++)
			{
				p1 = vetor[i];

				if(p1 != null)
				{
					cont++;
					listaPessoas[i] = p1;
				}
				else
				{
					break;
				}
			}
		}
		catch (Exception e)
		{
			return 0;
		}

		return cont;
	}

	/**
	 * Metodo que é notificado para mostrar itens do arquivo na Console
	 * 
	 *  @param observable - classe observada
	 *  @param data - dados vindos de um arquivo
	 */
	public void update(Observable observable, Object data)
	{
		Pessoa p[] = ((Pessoa[]) data);
		Pessoa p1;

		for (int i = 0; i < p.length; i++)
		{
			p1 = p[i];

			if(p1 != null)
			{
				System.out.println(p1);
			}
			else
			{
				System.out.println("---------------------------------------------");
				break;
			}	
		}
	}

	public static void main(String[] args)
	{
		new Tela().iniciarComponentes();
	}
}

2 Respostas

Eduardo_Bregaida

Ué não entendi, cria um projeto nas 2 IDEs, cria um pacote com o nome de: example02Swing e uma classe com o nome Tela
Os 2 tem um botão que parece uma seta verde de um “play” igual os de aparelhos de Som, basta apertar e pronto.

A forma de trabalhar com as 2 IDEs são semelhantes nesse caso, já que vc importa pelo que vi, tudo de javax.
Mas detalhe vc precisa das Classes ObjectIO e Pessoa e criar o pacote example01 tbm.

[]s

discorpio

Boa tarde Eltonbonato.

Primeiramente substitua o código do construtor por este abaixo:

public Tela()   
    {   
        super("Cadastro de clientes");   
        inicializarVariaveis();
        iniciarComponentes();       
    }

E depois o método que inicializa a sua aplicação para o abaixo:

public static void main(String[] args)   
    {   
        Tela display = new Tela();
        display.setVisible(true);    
    }

Ou se preferir assim, também pode;

public static void main(String[] args)   
    {   
        new Tela().setVisible(true);  
    }
Criado 10 de abril de 2010
Ultima resposta 10 de abr. de 2010
Respostas 2
Participantes 3