Dúvida no funcionamento de parâmetros, métodos e interface gráfica

8 respostas Resolvido
java
Plufty

Estou iniciando agora no java e estou criando um programa pra treinar, apenas conheço C e não estou conseguindo utilizar uma função de uma classe em outra, como devo proceder?
quando tento compilar a classe TestePeitoral eu tenho o seguinte erro:
"TestePeitoral.java:32: error: ‘.class’ expected exercicioPeitoral.escolherExercicios(exercicioPeitoral[]);

^

1 error"

não entendi muito bem como devo passar esse parâmetro para o método, e também se por acaso alguém tiver uma ideia melhor de como randomizar os exercícios seria de grande ajuda.

public class TestePeitoral
{
    //Atributos da classe
    Exercicios exercicioPeitoral[] = new Exercicios[13];
    //Métodos
    public void instanciarVetores()
    {
        for (i=0;i<13;i++)
        {
            this.exercicioPeitoral[i] = new Exercicios();
        }
    }
    public void inicializarExercicios()
    {
        this.exercicioPeitoral[0].exercicio = "Supino Reto com Dumblels";
        this.exercicioPeitoral[1].exercicio = "Supino Reto com Barra";
        this.exercicioPeitoral[2].exercicio = "Supino Inclinado com Dumblels";
        this.exercicioPeitoral[3].exercicio = "Supino Inclinado com Barra";
        this.exercicioPeitoral[4].exercicio = "Supino Declinado com Dumblels";
        this.exercicioPeitoral[5].exercicio = "Supino Declinado com Barra";
        this.exercicioPeitoral[6].exercicio = "Crucifixo Reto";
        this.exercicioPeitoral[7].exercicio = "Crucifixo Inclinado";
        this.exercicioPeitoral[8].exercicio = "Crucifixo Declinado";
        this.exercicioPeitoral[9].exercicio = "Crucifixo Peck Deck";
        this.exercicioPeitoral[10].exercicio = "Crucifixo Pulley";
        this.exercicioPeitoral[11].exercicio = "Pullover";
        this.exercicioPeitoral[12].exercicio = "Flexão";
    }
    public void sorteioExercicios()
    {
        exercicioPeitoral.escolherExercicios(exercicioPeitoral[]);
    }
}
import java.util.Random;
public class Exercicios
{   
    //Atributos
    String exercicio;
    String tipoSerie;
    int intensidade;
    //Métodos
    public void escolherExercicios(Exercicios[] grupoMuscular)
    {
        int i;
        int posicaoVetor;
        int sorteados[] = new int[4];
        Random aleatorio = new Random();
        for (i=0;i<4;i++)
        {
            posicaoVetor = aleatorio.nextInt (grupoMuscular.length);
            sorteados[i]=posicaoVetor;
            if (i>0)
            {
                while (sorteados[(i-1)] == posicaoVetor)
                {
                    posicaoVetor=aleatorio.nextInt (grupoMuscular.length);
                }
            }
            System.out.println("    "+grupoMuscular[posicaoVetor].exercicio+"");

        }
    }
}

Por fim gostaria de saber se existe alguma forma de cirar uma interface gráfica sem usar IDE, pois para estudar e memorizar melhor a linguagem eu estou usando apenas editor de texto de terminal.

Desde já agradeço!

8 Respostas

Jelson1

exercicioPeitoral é um array. Você está tentando acessar o um metodo que pertence a classe Exercícios, acredito que seja isso o erro!

Você pode tentar fazer isso, talvez não seja a melhor maneira:

public void sorteioExercicios(){
    Exercicio.escolherExercicios(exercicioPeitoral[]);
}

E na classe Exercícios, deixe o método estático:

public static void escolherExercicios(Exercicio[] grupoMuscular){

       [...]
}

Sim! Você pode usar a biblioteca Swing ou JavaFX, existe alguns materiais na internet!

Plufty

Sobre o código, fiz as alterações que citou, o erro continua o mesmo,
sobre a interface gráfica vou estar pesquisando agora, agradeço muito!

Jelson1

Pode mostrar o código e o erro de novo?

Plufty
import java.util.Random;
public class Exercicios
{   
    //Atributos
    String exercicio;;
    String tipoSerie;
    int intensidade;
    //Métodos
    public static void escolherExercicios(Exercicios[] grupoMuscular)
    {
        int i;
        int posicaoVetor;
        int sorteados[] = new int[4];
        Random aleatorio = new Random();
        for (i=0;i<4;i++)
        {
            posicaoVetor = aleatorio.nextInt (grupoMuscular.length);
            sorteados[i]=posicaoVetor;
            if (i>0)
            {
                while (sorteados[(i-1)] == posicaoVetor)
                {
                    posicaoVetor=aleatorio.nextInt (grupoMuscular.length);
                }
            }
            System.out.println("    "+grupoMuscular[posicaoVetor].exercicio+"");

        }
    }
}
public class TestePeitoral
{
    //Atributos da classe
    Exercicios exercicioPeitoral[] = new Exercicios[13];
    //Métodos
    public void instanciarVetores()
    {
        for (i=0;i<13;i++)
        {
            this.exercicioPeitoral[i] = new Exercicios();
        }
    }
    public void inicializarExercicios()
    {
        this.exercicioPeitoral.instanciarVetores();
        this.exercicioPeitoral[0].exercicio = "Supino Reto com Dumblels";
        this.exercicioPeitoral[1].exercicio = "Supino Reto com Barra";
        this.exercicioPeitoral[2].exercicio = "Supino Inclinado com Dumblels";
        this.exercicioPeitoral[3].exercicio = "Supino Inclinado com Barra";
        this.exercicioPeitoral[4].exercicio = "Supino Declinado com Dumblels";
        this.exercicioPeitoral[5].exercicio = "Supino Declinado com Barra";
        this.exercicioPeitoral[6].exercicio = "Crucifixo Reto";
        this.exercicioPeitoral[7].exercicio = "Crucifixo Inclinado";
        this.exercicioPeitoral[8].exercicio = "Crucifixo Declinado";
        this.exercicioPeitoral[9].exercicio = "Crucifixo Peck Deck";
        this.exercicioPeitoral[10].exercicio = "Crucifixo Pulley";
        this.exercicioPeitoral[11].exercicio = "Pullover";
        this.exercicioPeitoral[12].exercicio = "Flexão";
    }
    public void sorteioExercicios()
    {
        Exercicio.escolherExercicios(exercicioPeitoral[]);
    }
}

Captura%20de%20tela%20de%202020-03-14%2016-59-22

Jelson1
Solucao aceita

Tente assim(tava faltando um s em Exercicios e não precisa do [ ]):

Exercicios.escolherExercicios(exerciciosPeitoral);

Plufty

Essa parte foi resolvida, agora só me falta conseguir resolver o método de instanciar vetores que deu um erro agora.
Muito obrigado!

Jelson1

Qual?

Plufty

consegui resolver, foi só um erro de sintaxe, muito obrigado mesmo, agora posso passar pra próxima fase

Criado 14 de março de 2020
Ultima resposta 14 de mar. de 2020
Respostas 8
Participantes 2