public class P3 extends Generico implements ActionListener
{
Carro c1[];
int count=0;
public P3 ()
{
super();
this.jButton4.setText("Maior Ano");
this.jButton5.setText("Maior Valor");
jButton1.setVisible(false);
jButton2.setVisible(false);
jButton3.setVisible(false);
jButton4.addActionListener(this);
jButton5.addActionListener(this);
}
void setCarro(Carro[] p)
{
c1 = p;
}
public void actionPerformed(ActionEvent e)
{
int Maior=0;
int MaiorV= 0;
int MaiorValor=0;
int MaiorA=0;
if(e.getSource()==jButton5) // Aqui quando eu apertar o botão vai percorrer a Array e colocar no campo maior Ano do carro. Quando eu arrumo aqui o outro não funciona.
{
for( int x =0; x<c1.length; x++)
{
if(c1[x].getAno()>Maior)
Maior= x;
MaiorA = c1[x].getValor();
}
jTextField3.setText( Integer.toString(c1[MaiorA].getValor()));
jTextField2.setText("");
}
else if(e.getSource()==jButton4)// aqui coloca Maior valor.
{
for(int x=0; x<c1.length; x++)
{
if(c1[x].getValor()>MaiorValor)
{
MaiorValor = x;
MaiorV = c1[x].getValor();
}
}
jTextField2.setText( Integer.toString(c1[MaiorV].getAno()));
jTextField3.setText("");
}
}
O programa Compila certo mas nao gera resultados
14 Respostas
coloca a main!
nas linhas 33, 34 e 35, não deveria ser assim o código?
if(c1[x].getAno() > MaiorA){
Maior = x;
MaiorA = c1[x].getAno();
}
...
ao inves de getValor
Isso ai Tautame não tinha visto. Arrumei mas so funciona em um campo. Deve ser alguma coisa lógica mas não estou encontrando. Por exemplo se eu mudo apenas o codigo em um botão funciona mas os dois não funcionam juntos. não sei se me entendeu. abraço
public void actionPerformed(ActionEvent e)
{
int Maior=0;
int MaiorV= 0;
int MaiorValor=0;
int MaiorA=0;
if(e.getSource()==jButton5)
{
for( int x =0; x<c1.length; x++)
{
if(c1[x].getValor()>Maior) // O erro deve estar ocorrendo por aqui, mas está certo eu acho a logica.
Maior= x;
MaiorA = c1[x].getValor();
}
jTextField3.setText( Integer.toString(c1[MaiorA].getValor()));
jTextField2.setText("");
}
else if(e.getSource()==jButton4)
{
for(int x=0; x<c1.length; x++)
{
if(c1[x].getAno()>Maior)
{
MaiorValor = x;
MaiorV = c1[x].getAno();
}
}
jTextField2.setText( Integer.toString(c1[MaiorV].getAno()));
jTextField3.setText("");
}
}
achei outros problemas, editei o código, mas não sei se é isso...
public class P3 extends Generico implements ActionListener
{
Carro c1[];
int count=0;
public P3 ()
{
super();
this.jButton4.setText("Maior Ano");
this.jButton5.setText("Maior Valor");
jButton1.setVisible(false);
jButton2.setVisible(false);
jButton3.setVisible(false);
jButton4.addActionListener(this);
jButton5.addActionListener(this);
}
void setCarro(Carro[] p)
{
c1 = p;
}
public void actionPerformed(ActionEvent e)
{
int Maior=0;
int MaiorV= 0;
int MaiorValor=0;
int MaiorA=0;
if(e.getSource()==jButton5) // Aqui quando eu apertar o botão vai percorrer a Array e colocar no campo maior Ano do carro. Quando eu arrumo aqui o outro não funciona.
{
for( int x =0; x<c1.length; x++)
{
if(c1[x].getAno()>MaiorA){ //aqui eu ja disse antes
Maior= x;
MaiorA = c1[x].getAno();
}
}
jTextField3.setText( Integer.toString(c1[Maior].getAno())); //isso eu vi agora
jTextField2.setText("");
}
else if(e.getSource()==jButton4)// aqui coloca Maior valor.
{
for(int x=0; x<c1.length; x++)
{
if(c1[x].getValor()>MaiorV) //aqui tambem tava errado
{
MaiorValor = x;
MaiorV = c1[x].getValor();
}
}
jTextField2.setText( Integer.toString(c1[MaiorValor].getValor())); //tambem vi isso so agora
jTextField3.setText("");
}
}
tenta agora... deve estar funcionando
eu editei o meu ultimo post, dá uma olhada no código e ve se nao dá certo agora…
Não funcionou ainda. Só funciona quando eu coloco “count” aqui nesta linha
if(e.getSource()==jButton5)
{
for( int x =0; x<c1.length; x++)
{
if(c1[x].getValor()>MaiorA)
Maior= x;
MaiorA = c1[x].getValor();
}
jTextField3.setText( Integer.toString(c1[count].getValor())); // Eu coloquei count e apareceu o maior valor no campo. Mas não tem nada a ver esse count. Se eu colocar em cima tambem vai dar erro.
jTextField2.setText("");
Aquele teu que vc acabou de fazer ao compilar não gera erros so quando eu aperto no botão correspondente não aparece nada no campo e embaixo do netbeens aparece um monte de linhas vermelhas.
faz o seguinte, tenta imprimir assim:
jTextField3.setText( Integer.toString(MaiorA));
jTextField2.setText("");
Colega agora funcionou tá aparecendo os valores Muito Obrigado por enquanto. Mas só que tem um problema. No campo valor ao invés de aparecer o maior valor está aparecendo o menor Valor. porque está acontecendo isso?
Como eu faço para ordenar ano e valor tambem?. Dá uma dica.
hmm… estranho ele estar mostrando o menor valor, isso não faz sentido, confira aí no seu código se o “if” que testa se o valor é maior está assim: if(c1[x].getAno()>MaiorA)
e se isso não resolver, tenta inverter o sinal do teste pra “<”…
pra fazer uma ordenação eu sugiro você a dar uma olhada nos algoritimos de bubble sort, são os mais simples para ordenação…
aqui vai um exemplo, aí é só você adaptar para o seu programa…
int vetor[] = new int[15]; // (dá uma olhada aí em como se declara um vetor q não to com muita certeza da sintaxe, to sem compilador aqui)
int aux;
/*
comandos para atribuir ao vetor os valores..
*/
for(int x=0; x<vetor.length; x++){
for(int y=0; y < vetor.length; y++){
if(vetor[y] > vetor[x]){
aux = vetor[y];
vetor[y] = vetor[x];
vetor[x] = aux;
}
}
}
Olá colegas tem um linha que está comentada logo abaixo que esta com erro. Alguem poderia me dar uma mão. Eu quero ordenar esse vetor. Abraço
{
int aux;
if(e.getSource()==jButton6)
{
for(int x=0; x<c1.length; x++)
{
for (int y=0;y<c1.length; y++)
{
aux = c1[y].getValor();
c1[y] = c1[x];
c1[x].getValor() = aux; // requeried value, found valor, unexpected type. Isso dá quando eu compilo com o Netbeens
}
Olá colegas tem um linha que está comentada logo abaixo que esta com erro. Alguem poderia me dar uma mão. Eu quero ordenar esse vetor. Abraço{ int aux; if(e.getSource()==jButton6) { for(int x=0; x<c1.length; x++) { for (int y=0;y<c1.length; y++) { aux = c1[y].getValor(); c1[y] = c1[x]; c1[x].getValor() = aux; // requeried value, found valor, unexpected type. Isso dá quando eu compilo com o Netbeens }
cara, vc nao pode atribuir ao retorno de um método alguma coisa... e mesmo que pudesse, isto esculhambaria o seu programa... ao certo, você deve trocar os objetos de lugar... (ah, e na ultima msg eu mandei errado o bubble sort, embora funcione ambos os jeitos, o mais correto é como vou mostrar agora):
{
Carro aux;
if(e.getSource()==jButton6)
{
for(int x=0; x<c1.length - 1; x++) //atenção aqui
{
for (int y=x+1; y<c1.length; y++) // e aqui
{
if(c1[x].getValor() > c1[y].getValor()){ //você se esqueceu de testar se é necessário trocar as duas posições, agora está corrigido..
aux = c1[y];
c1[y] = c1[x];
c1[x] = aux; // agora deve estar rodando direito :)
}
}
}
}
}