[Resolvido] Criar uma Tabela no Java - Aplicação via console

Pessoal…

Não sei por onde começar…
tenho que criar uma tabela para alocar Nomes, Matérias e Notas Bimestrais…
isso usando apenas o InputDialog para entrar com os valores e o MessengeDialog para apresentar os dados…
ou seja, tudo via console :shock:

Alguém me dá uma ideia de como fazer tal coisa… :slight_smile:

VALEU !

seria legal se vc coloca-se um exemplo prático do que deseja imprimir como resultado para o pessoal aqui ajudar :smiley:

[quote=Danleonhart]Pessoal…

Não sei por onde começar…
tenho que criar uma tabela para alocar Nomes, Matérias e Notas Bimestrais…
isso usando apenas o InputDialog para entrar com os valores e o MessengeDialog para apresentar os dados…
ou seja, tudo via console :shock:

Alguém me dá uma ideia de como fazer tal coisa… :slight_smile:

VALEU ![/quote]

Cara, não entendi quase nada do que você quis dizer.

Se você vai usar dialogs para entrar com os dados e apresentá-los, você não vai estar fazendo isso via console.

E, geralmente(pelo menos em 100% dos casos que eu já vi, mas podem haver exceções), você não cria a tabela pela aplicação. A tabela já está criada e você apenas popula ela atráves da aplicação.

Explica melhor aí seu objetivo pra gente poder dar um help.

Seguinte…

Preciso criar um script que através de um “for”, vou colocar “Nomes” de alunos…e ligado a cada aluno, notas dos 4 bimestres…
pensei então em fazer com uma tabela, mas não uma tabela de Access ou SQL, uma tabela temporária.

Foi aí que li sobre JTable, mas não sei se é bem isso que preciso…
pois em outro exercício que fiz, utilizei 2 ArrayLists… um para os nomes e o outro para valores…
vejam:

import java.util.*;
import javax.swing.*;

public class Classificar {
// Criando Arrays para armazenar os valores:
  static ArrayList<String> lstPrd = new ArrayList<String>();
  static ArrayList<Double> lstPrecos = new ArrayList<Double>();

	public static void main(String[] args){
	  // Variáveis iniciais:
		String   nome = "";
		int      limite = 4;
		double   valor = 0;
     
	 // Iniciando o ciclo que receberá os valores:	
		 for (int n = 0; n <= limite; n++){
			 nome = JOptionPane.showInputDialog(null, "Informe o Nome do Produto:", "Nome do Produto :", 2);
			 valor = Double.parseDouble(JOptionPane.showInputDialog(null, "Informe a Quantidade :", "Quantidade :", 2));
	
	        // Adicionando valores aos Arrays:		 
			     lstPrd.add(n, nome);
			     lstPrecos.add(n, valor);
		 }
	
	// Variáveis de suporte: 
		String res = ""; 
		int tam = lstPrd.size();
		int b = 0;
	
	// Declarando variáveis que alocarão valores resgatados dos Arrays:		
		String produto = "";
		String valorP = "";
		
		// Resgatando valores dos Arrays:
		      while (b < tam){
			       produto = lstPrd.get(b);
			     // <= Aqui utilizo um método que criei para efetuar as comparações:  
			       valorP = Lucro(lstPrecos.get(b)); 
			       
			    // Estou alocando todo conteúdo recuperado do Array em uma variável
			    // que será apresentada no final do script:   
			       res = res + "Produto : " + produto + " " + valorP + "\n";
		       
			  // Incrementando valor:     
		       b++;    
		      }
		      
		     // Apresentando o resultado: 
		      JOptionPane.showMessageDialog(null, res, "Métodos de Entrada", 1);
	}
   
//Método para comparar os valores:
	public static String Lucro(double val){
		
/*======Lógica louca...
 * valor < 10       lucro 70% 
   de 10 a 30       lucro 50% 
   de 30 a 50       lucro 40%
   de 5 acima       lucro 30%     
                                 */	
     String resp = "";
     
		  if (val > 5 && val < 10){
			  resp = "30% de Lucro";
			  
		  }else if(val > 10 && val < 30){
			  resp = "50% de Lucro";
			  
		  }else if(val > 30 && val < 50){
			  resp = "40% de Lucro";
			  
		  }else if(val < 5){
			  resp = "70% de Lucro";
			  
		  }
		  
		  return resp;
	 }
			
}

Agora tenho que colocar Nomes, Bimestres e Notas…
Tipo assim:

Aluno Bimestre Nota
Paulo 1º 7.5

Entendem ?! :wink:

Você pode fazer uma classe de Aluno, que vai armazenar o aluno e suas respectivas notas, e fazer um ArrayList de Aluno. Eu faria algo do tipo:

[code]public class Aluno {
private String nome;
private float[] notas = new float[4];
//você pode usar outra estrutura pra armazenar as notas, mas aí fica a seu critério, como serão sempre 4 notas eu ficaria com o array mesmo

public void setNome(String nome) {
this.nome = nome;
}

public String getNome() {
return this.nome;
}

public void setNota(int bimestre, float nota) {
this.notas[bimestre-1] = nota;
}

public float getNota(int bimestre) {
return this.notas[bimestre-1];
}

}[/code]

Daí na sua aplicação você faz um ArrayList. Pra inserir, use um objeto do tipo aluno, faça o setNome e o setNota pra cada bimestre e… pra pegar os dados, use os getters.

Qualquer dúvida só perguntar.

Obrigada Bianca Rosa :smiley:

Vou estudar e testar este seu exemplo…
como sou iniciante, ainda não li sobre o “this”…mas entendo um pouco do “return”

VALEUS !!! :slight_smile:

OK !

Comparo o “this” com o “Me” no Visual Basic :smiley:

Quanto a classe, funcionou perfeitamente com um aluno…
estou testando agora com vetor de alunos…posto a resposta.

Quanto aos métodos setNotas e getNotas não precisaram do “-1”…ficaram assim:

	public void setNota(int bimestre, double nota){
		
		this.notas[bimestre] = nota;
	}
	
	public double getNota(int bimestre){
		return this.notas[bimestre];
	}

Bem, não sei, mas quero aprender :smiley:

Com este script preencho um Aluno com suas Notas bimestrais:

	public static void AddAluno(){
		Alunos aln = new Alunos();
		
		aln.setNome(JOptionPane.showInputDialog(null, "Informe o nome do Aluno", "Nome do Aluno" , 1));
		
		  for (int x = 0; x < bim; x++){
			  
			  aln.setNota(x, Double.parseDouble(JOptionPane.showInputDialog("Informe a nota do " + (x + 1) + "º Bimestre")));
			  
		  }
	}

A classe Alunos é com base na informação que a Bianca Rosa passou…

Agora, como faço para criar o ArrayList para colocar 4 alunos (ou quantos quiser) com sua respectivas notas ???

Tipo assim:
[color=darkred] Jorge
1º Bimestre: 7.8
2º Bimestre: 8.5
3º Bimestre: 9.0
4º Bimestre: 7.0

Renata
1º Bimestre: 8.0
2º Bimestre: 8.5
3º Bimestre: 7.5
4º Bimestre: 9.5[/color]

E por aí vai…

Resolvido !

A classe Alunos:


public class Alunos {
     private String nome;
     public double notas[] = new double[4];
     
	public void setNome(String nome){
		
		this.nome = nome;
	}
	
	public String getNome(){
		return this.nome;
	}
	
	public void setNota(int bimestre, double nota){
		
		this.notas[bimestre] = nota;
	}
	
	public double getNota(int bimestre){
		return this.notas[bimestre];
	}
	
	public int SizeVetor(){
		return notas.length;
	}
}

O script da aplicação :


public class MediaCurso {
  static int alu = 5;
  static int bim = 4;
  static ArrayList<String> lstNomes = new ArrayList<String>();
  static ArrayList<Double> lstBim = new ArrayList<Double>();

	public static void main(String[] args) {
		
		IniApp();
		
	}

	
	public static void IniApp(){
		String nome = "", notas = "",  res = "", med = "";
		ArrayList<Alunos> arAlu = new ArrayList<Alunos>();
		  
		  for (int h = 0; h < alu; h++){
			  
			  Alunos ann = new Alunos();
			  ann.setNome(JOptionPane.showInputDialog(null, "Informe o nome do Aluno", "Nome do Aluno" , 1));
			      
			      for (int x = 0; x < bim; x++){
					  
					  ann.setNota(x, Double.parseDouble(JOptionPane.showInputDialog("Informe a nota do " + (x + 1) + "º Bimestre")));
					  
			      }  
			   
		      arAlu.add(h, ann);
		  }
		  
	// Começo a resgatar os valores salvos no Array:	  
		  for (int a = 0; a < arAlu.size(); a++){
			  nome = "Aluno : " + arAlu.get(a).getNome() + "\n";
			    
			      for (int r = 0; r < bim; r++){
			    	
			    	  notas = notas + (r + 1) + "º Bimestre : " + arAlu.get(a).getNota(r) + "\n";
			      }
			     med = "Média : " + MediaNota(arAlu.get(a).notas);
			     res = res + nome + notas + med + "\n \n";
			     nome = ""; notas = ""; med = "";
		  }
		
    // Imrprimo os resultados:		  
		 // JOptionPane.showMessageDialog(null, res);
		  System.out.println(res);

	}
	
	
	public static double MediaNota(double... nts){
	  double soma = 0, media = 0;
    
	    for (int p = 0; p < nts.length; p++){    
	            
	        soma = soma + nts[p];    
	                
	    }    
	    
	    media = soma / nts.length;
		return media;
	}
}

Obrigado a todos !