Como criar uma classe principal?

2 respostas
M

Minha noção de java é minima e estou tendo grandes dificuldades
para fazer os códigos que encontro na net rodarem ,pois todas as
vezes que encontro os códigos sem a classe main, não consigo cria-la
com os metódos necessários para que os códigos executem ,já fiz algumas vezes o
programa rodar, mas não aparece nada.
Quem puder mim ajudar eu agradeço, segue abaixo um código que achei na net e
que não estou conseguindo rodar.

import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
import java.util.Arrays;

import javax.swing.table.DefaultTableModel;



public class Agenda {
	
	public void run() {}
	
	
	private static final String DADOS = null;
	private static final Agenda NovoMetodos = null;

	 
	protected static String carregaDados() {
	       String texto = "";
	       StringBuffer temp = new StringBuffer();
	       File arq = new File(DADOS);

	       try {
		       if (arq.exists()) {//Verifico se o arquivo existe.
			       // lendo arquivo
			       FileReader arquivo = new FileReader(arq);
			       BufferedReader ler = new BufferedReader(arquivo);
			       // Colocando num StringBuffer que é muito mais rápido e ocupa
			       // menos memória que +=
			       boolean fim = false;
			       //Lembrando que o método readLine() retorna null quando chega ao fim do arquivo...
			       while (!fim) {
				       String linha = ler.readLine();
				       if (linha == null)
					       fim = true;
				       else
					       temp.append(linha);
				       System.out.println("Leu:");

			       }

			       texto = temp.toString(); //convertendo o StringBuffer para String
			       // Fechando
			       ler.close();
			       arquivo.close();
		       } else
			       arq.createNewFile();// Criando Arquivo
	       } catch (IOException erro) {
		       System.out.print("Erro 01 :" + erro.toString());
	       } catch (SecurityException erro2) {
		       System.out.print("Erro 02 :" + erro2.toString());
	       }
	       return texto;
	}
	
	
	
	
	
	protected static String[][] pegaDados() {
	       // Carregando Dados
	       String nome = carregaDados();// Pegando retorno de carregaDados();
	       if (nome.equals("")) {//Se não encontrou nada...
		       nome = "Agenda Simples;Marcus Becker";
	       }//Se encontrou algo...
	       // Formatando os Dados

	       //Lembrando que o nome e o telefone são separados pelo 
	       //caractere ?;? (ponto-e-vírgula)
	       String[] arrNome = nome.split(";");

	       //Como para o arrNome eu coloquei o nome e o telefone, o array de 
	       //dados vai ter apenas metade (só o nome) contendo 2 
	       //dimensões (nome e telefone)m então divido o tamanho dele por 2.
	       String[][] dados = new String[(arrNome.length / 2)][2];
	       for (int i = 0, j = 0; i < (arrNome.length - 1); i += 2, j++) {
		       dados[j][0] = arrNome[i];
		       dados[j][1] = arrNome[i + 1];
	       }
	       //Aqui eu adiciono ao array dados os nomes e telefones, como sei que 
	       //sempre vem primeiro o nome e depois o telefone 
	       //referente a esse nome, adiciono os elementos 0 e 1 do arrNome, depois 
	       //2 e 3, depois 4 e 5, assim por diante sempre 
	       //incrementando o i em 2 (por que se não seria 0 e 1, 1 e 2 ...), já o j 
	       //serve para indicar o locar no array dados onde 
	       //ficarão os dados... Nem eu mesmo entendi de primeira essa parte do código.

	       return dados; //Retorno os dados para a tabela (veja mais a frente).
	}
	
	//Recebe os dados já formatados, separado pelo ?;?... nome;telefone;nome;telefone...
	protected static void salvarDados(String texto) { 
	       File arq = new File(DADOS);
	       try {
		       if (arq.exists()) {//Se o arquivo existir ele salva, se não, eu não sei....
			       FileWriter arquivo = new FileWriter(arq);
			       BufferedWriter grava = new BufferedWriter(arquivo);
			       grava.write(texto);
			       grava.close();
			       arquivo.close();
		       }
	       } catch (IOException e) {
		       System.out.print("Erro 01 :" + e.toString());
	       } catch (SecurityException erro2) {
		       System.out.print("Erro 02 :" + erro2.toString());
	       }
	}
	
	
	
	
	protected static void salvaTabela(DefaultTableModel modelo) { //Recebendo o objeto
	       String dados = "";
	       StringBuffer temp = new StringBuffer(); //Buffer é mais rápido...
	       for (int i = 0; i < modelo.getRowCount(); i++) {
		       String nome = (String) modelo.getValueAt(i, 0);
		       String tel = (String) modelo.getValueAt(i, 1);
		       if (!nome.equals("")) {//Se o campo nome não estiver vazio...
		               //Se o campo telefone for menor que 7 ele não contem um 
			       //numero telefônico válido... 
			       //então substituo ele pelo hífen.
			       if (tel.trim().length() < 7)
				       tel = "-";
			       else {
				       tel = tel.trim();//tirando espaços em branco...

				       //o ; é usado para separar os dado, para evitar erros
				       //inesperados eu substitui sem dó, ele por nada.
				       tel = tel.replaceAll(";", "");
			       }
			       nome = nome.trim();
			       nome = nome.replaceAll(";", "");
			       //Aqui um exemplo de um método lento, nunca usem.
			       // dados += nome + " ; " + tel + " ; "; 
			       temp.append(nome + ";" + tel + ";"); // forma correta!
			       System.out.println("Nome: " + nome + "\t Tel: " + tel);
		       }
	       }
	       dados = temp.toString();
	       salvarDados(dados); //Chamando o método salva dados.
	}
	
	
	protected static void ordenaTabela(DefaultTableModel modelo) {
	       StringBuffer temp = new StringBuffer();
	       String dados[] = new String[modelo.getRowCount()];
	       for (int i = 0; i < modelo.getRowCount(); i++) {
		       String valorNome = (String) modelo.getValueAt(i, 0);
		       String valorTel = (String) modelo.getValueAt(i, 1);
		       // Tirando Valores em Branco...
		       if (valorNome.trim().length() <= 0)
			       valorNome = "";
		       if (valorTel.trim().length() <= 0)
			       valorTel = "";

		       dados[i] = valorNome + " ;" + valorTel + ";";

	       }
	       Arrays.sort(dados);
	       // redefineTabela(modelo,dados);
	       for (int i = 0; i < dados.length; i++) {
		       temp.append(dados[i]);
		       System.out.println("Temp: " + dados[i]);
	       }
	       String nome = temp.toString();
	       salvarDados(nome);
	}
	
	
	
	final String[] COLUNAS = new String[]{"Nome","Telefone"};
	DefaultTableModel modelo = new DefaultTableModel(NovoMetodos.pegaDados(),COLUNAS);
	
	
		
		

	}

2 Respostas

Andre_Rosa

Não entendi. Você quer chamar outros métodos através do método principal ?

public static void main(String args[]) { //all content class.method(); }

M

O que quero é isso ,
Tem como mim ajudar ?

Criado 1 de dezembro de 2010
Ultima resposta 1 de dez. de 2010
Respostas 2
Participantes 2