importjavax.swing.*;publicclassExer38{/*39) Desenvolva uma classe com um método que vasculhe uma matriz de números inteiros em busca de um númeroprocurado. O retorno, caso ele seja encontrado, será a linha da matriz em que ele se encontra; caso ele não exista namatriz, o valor retornado será -1. Sua assinatura seria int metodo (int matriz [ ][ ], int procurado).*/publicstaticvoidmain(Stringargs[]){intnLinhas,nColunas;intmatriz[][];Stringaux;Stringsaida="";aux=JOptionPane.showInputDialog(null,"Quantas linhas?","Matriz",JOptionPane.QUESTION_MESSAGE);nLinhas=Integer.parseInt(aux);aux=JOptionPane.showInputDialog(null,"Quantas colunas?","Matriz",JOptionPane.QUESTION_MESSAGE);nColunas=Integer.parseInt(aux);matriz=newint[nLinhas][nColunas];for(intl=0;l<matriz.length;l++){for(intc=0;c<matriz[0].length;c++){aux=JOptionPane.showInputDialog(null,"Qual o elemento da Linha "+(l+1)+" e coluna "+(c+1),"Matriz",JOptionPane.QUESTION_MESSAGE);matriz[l][c]=Integer.parseInt(aux);}}}}
No System.out.print(" ") a String não está vazia, e sim com um espaço em branco
que serve para deixar todos os elementos de uma mesma linha separados.
O System.out.println(" ") imprime o que for passado e quebra linha, então nesse caso não precisaria ser passada
essa String.
van_bommel
Uma outra duvida que tenho porque não posso imprimir no JOptionPane um metodo void
da esse erro aqui
‘void’ type not allowed here
JOptionPane.showMessageDialog ( null , impi(matriz) );
vitor_lima
Este impi(matriz) é um método void ?
Por que se for ele não será compatível com o argumento esperado pelo
método JOptionPane.showMessageDialog.
Deixa eu ver se entendi.
Você criou um método void impi(int[][] matriz) que imprime
o conteúdo da matriz usando os prints (assim como nos exemplos acima)
e quer colocar essa saída gerada por este
método dentro da janela de mensagem ?
van_bommel
maisoumenosisso.}JOptionPane.showMessageDialog(null,impi(matriz));}publicstaticvoidimpi(intmatriz[][]){for(intl=0;l<matriz.length;l++){for(intc=0;c<matriz[0].length;c++){saida=saida+matriz[l][c];//imprime caracter a caracter }saida=saida+"\n";//muda de linha }System.out.println(saida);}nocasoentãooJOption.eosystem.out.printlnoargumentodelesnãopodeserummetodovoid...nocasoakiembaixopqnãofunciona?for(intl=0;l<matriz.length;l++){for(intc=0;c<matriz[0].length;c++){JOptionPane.showMessageDialog(null,matriz[l][c]+" ");//imprime caracter a caracter }JOptionPane.showMessageDialog(null," ");//muda de linha }
vitor_lima
Por que cada iteração do for vai mostrar
uma janela.
Perceba que cada vez que você passa pelo for
o comando JOptionPane.showMessageDialog é executado.
van_bommel
import javax.swing.*;
publicclassExer38{/*39) Desenvolva uma classe com um método que vasculhe uma matriz de números inteiros em busca de um númeroprocurado. O retorno, caso ele seja encontrado, será a linha da matriz em que ele se encontra;caso ele não exista namatriz, o valor retornado será -1. Sua assinatura seria int metodo (int matriz [ ][ ], int procurado).*/staticStringsaida=“”;
aux=JOptionPane.showInputDialog(null,"Quantas linhas?","Matriz",JOptionPane.QUESTION_MESSAGE);nLinhas=Integer.parseInt(aux);aux=JOptionPane.showInputDialog(null,"Quantas colunas?","Matriz",JOptionPane.QUESTION_MESSAGE);nColunas=Integer.parseInt(aux);matriz=newint[nLinhas][nColunas];for(intl=0;l<matriz.length;l++){for(intc=0;c<matriz[0].length;c++){aux=JOptionPane.showInputDialog(null,"Qual o elemento da Linha "+(l+1)+" e coluna "+(c+1),"Matriz",JOptionPane.QUESTION_MESSAGE);matriz[l][c]=Integer.parseInt(aux);}}JOptionPane.showMessageDialog(null,impi(matriz));}publicstaticStringimpi(intmatriz[][]){for(intl=0;l<matriz.length;l++){for(intc=0;c<matriz[0].length;c++){saida=saida+matriz[l][c];//imprime caracter a caracter }saida=saida+"\n";//muda de linha }returnsaida;
}
}
vitor_lima
Use este método no lugar do impi(int[][] matriz) que você estava usando.