Ir ao conteúdo
  • Comunicados

    • Gabriel Torres

      Seja um moderador do Clube do Hardware!   12-02-2016

      Prezados membros do Clube do Hardware, Está aberto o processo de seleção de novos moderadores para diversos setores ou áreas do Clube do Hardware. Os requisitos são:   Pelo menos 500 posts e um ano de cadastro; Boa frequência de participação; Ser respeitoso, cordial e educado com os demais membros; Ter bom nível de português; Ter razoável conhecimento da área em que pretende atuar; Saber trabalhar em equipe (com os moderadores, coordenadores e administradores).   Os interessados deverão enviar uma mensagem privada para o usuário @Equipe Clube do Hardware com o título "Candidato a moderador". A mensagem deverá conter respostas às perguntas abaixo:   Qual o seu nome completo? Qual sua data de nascimento? Qual sua formação/profissão? Já atuou como moderador em algo outro fórum, se sim, qual? De forma sucinta, explique o porquê de querer ser moderador do fórum e conte-nos um pouco sobre você.   OBS: Não se trata de função remunerada. Todos que fazem parte do staff são voluntários.
    • DiF

      Poste seus códigos corretamente!   21-05-2016

      Prezados membros do Fórum do Clube do Hardware, O Fórum oferece um recurso chamado CODE, onde o ícone no painel do editor é  <>     O uso deste recurso é  imprescindível para uma melhor leitura, manter a organização, diferenciar de texto comum e principalmente evitar que os compiladores e IDEs acusem erro ao colar um código copiado daqui. Portanto convido-lhes para ler as instruções de como usar este recurso CODE neste tópico:  
Celestino Alona

Java Erro de impressão no for

Recommended Posts

Bom dia a todos. Fiz um código usando JOptionPane (acabei de chegar na parte de GUI's) , porém na hora de imprimir o que eu quero não sai corretamente.

 

O usuário deve inserir alguns números e ao final deve ser mostrado o maior número inserido.

 

package MaiorNum;
import java.util.Scanner;
import javax.swing.JOptionPane;

public class processos
{
    private int counter, number, largest;
    
    public void contador()
    {
        Scanner sc = new Scanner(System.in);
        
        for(counter = 0; counter < 10; counter++)
        {
            JOptionPane.showInputDialog(null, "%d° número : ", counter); /*O erro acontece aqui, pois na impressão
                                                                           aparece %d ao invés do número correspondente
                                                                           ao contador do for (counter)*/
            number = Integer.parseInt(sc.nextLine());
            
            if(counter == 0)
            {
                largest = number;
            }
            
            if(number > largest && counter > 0)
            {
                largest = number;
            }
        }
        
        String message = String.format("Maior número digitado : %d\n\n", largest);
        
        JOptionPane.showMessageDialog(null, message);
    }
    
}

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

@Celestino Alona Olá. A questão está na sua definição e ao uso de janelas. Do modo como está, após digitar o 1º número a janela é fechada e não volta mais. Eu não estudei o Java Swing, fui direto para o JavaFX, principalmente pelo fato do Swing ter sido descontinuado. Ou seja,  a Oracle parou completamente de investir no Java Swing.

Nesse caso, recomendo estudar JavaFX se tem interesse em trabalhar com interfaces gráficas em Java

A lógica para o seu código seria essa:


import java.util.Scanner;

public class processos {    
    
    private int[] number = new int[10];
    private int maior;
    private Scanner sc = new Scanner(System.in);
    
    public void contador() {        
        
        for (int i = 0; i < 10; i++) {
            System.out.print("Digite o " + (i + 1) + "º número: ");
            //JOptionPane.showInputDialog(null, (i + 1) + "º número : ");  // nessa formatação funciona ok, mas depois de digitar o 1º número a janela some
            number[i] = Integer.parseInt(sc.nextLine());      
        }
        
        maior = number[0];
        for (int i = 1; i < 10; i++) {
            if (number[i] > maior) {
                maior = number[i];
            }
        }
        
        //String message = String.format("Maior número digitado : %d\n\n", maior);
        
        //JOptionPane.showMessageDialog(null, message);
        System.out.println("Maior número digitado: " + maior);
    }
    
}

E aí no main ficaria assim:

public class Aplicacao {

    public static void main(String[] args) {
		
        processos p = new processos(); // cria um objeto da classe processos
		
        p.contador();	// chama o método contador
		
    }

}

Para o erro q aparece onde você mencionou tente isso:

JOptionPane.showInputDialog(null, (i + 1) + "º número : ");

 Não é a melhor resposta p dar mas vê se ajuda

adicionado 19 minutos depois

só completando:

eu não vejo muita lógica em alguém usar o seu tempo para estudar sobre um assunto q já pode ser considerado defasado.

Recomendo fortemente que invista no JavaFx, se pretende trabalhar com o Java e usar interface gráfica.

Porém, se porventura mesmo assim tiver interesse no Java Swing, segue um link com várias aulas práticas:

https://www.youtube.com/watch?v=w7EQDB7m9tc

Essa aula é apenas uma de algumas q foram liberadas pela plataforma em questão, no caso, a Softblue

 

Editado por giu_d
Correção no código
  • Curtir 1

Compartilhar este post


Link para o post
Compartilhar em outros sites
2 horas atrás, giu_d disse:

@giu_d Obrigado !

 

 

Editado por Celestino Alona
  • Obrigado 1

Compartilhar este post


Link para o post
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário






Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas publicações sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×