Ir ao conteúdo
  • Cadastre-se
IDexter

Java Como colocar array e listar

Recommended Posts

*//esse e o pacote principal //*


package principal;

import static java.lang.Integer.parseInt;
import java.util.ArrayList;
import javax.swing.JOptionPane;

public class Principal {

    ArrayList Obejtos = new ArrayList();

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

    public Principal() {
        Escolha();
        /*Triangulo();
        Quadrado();
        Ponto();
        Paralelepipedo();
        Cone();
        Cilindro();
        Bhaskara();*/
    }

    public void Escolha() {
        int escolha;
        escolha = parseInt(JOptionPane.showInputDialog(null, "O que Deseja Calcular: \n 1 - Ponto. \n 2 - Triangulo.\n "
                + "3 - Quadrado.\n" + "4 - Paralelepipedo.\n" + "5 - Cone.\n" + "6 - Cilindro.\n" + "7 - Bhaskara.\n" + "8 - Listar Todos Cadastrados.\n"));
        if (escolha == 1) {
             float x, y;

        x = Float.parseFloat(JOptionPane.showInputDialog(null, "Digite x: "));

        y = Float.parseFloat(JOptionPane.showInputDialog(null, "Digite y: "));

        Obejtos.add(new Ponto(x, y));

        JOptionPane.showMessageDialog(null, Obejtos.get(2).toString());
    }
        if (escolha == 2) {
            float altura, base, lado1, lado2, lado3, x, y;

            altura = Float.parseFloat(JOptionPane.showInputDialog(null, "Digite a Altura do Triangulo: "));
            base = Float.parseFloat(JOptionPane.showInputDialog(null, "Digite a Base do Tringulo: "));

            lado1 = Float.parseFloat(JOptionPane.showInputDialog(null, "Digite o Lado 1 do Triangulo "));
            lado2 = Float.parseFloat(JOptionPane.showInputDialog(null, "Digite o Lado 2 do Tringulo: "));
            lado3 = Float.parseFloat(JOptionPane.showInputDialog(null, "Digite o Lado 3 do Tringulo: "));

            x = Float.parseFloat(JOptionPane.showInputDialog(null, "Digite x: "));

            y = Float.parseFloat(JOptionPane.showInputDialog(null, "Digite y: "));

            Obejtos.add(new Triangulo(altura, base, lado1, lado2, lado3, x, y));

            JOptionPane.showMessageDialog(null, Obejtos.get(0).toString());
        }
        if (escolha == 3) {
            float lado, x, y;

            lado = Float.parseFloat(JOptionPane.showInputDialog(null, "Digite o Lado do Quadrado: "));

            x = Float.parseFloat(JOptionPane.showInputDialog(null, "Digite x: "));

            y = Float.parseFloat(JOptionPane.showInputDialog(null, "Digite y: "));

            Obejtos.add(new Quadrado(lado, x, y));

            JOptionPane.showMessageDialog(null, Obejtos.get(1).toString());
        }
        if (escolha == 4) {
            float comprimento, largura, altura, x, y;

            comprimento = Float.parseFloat(JOptionPane.showInputDialog(null, "Digite o Comprimento do Paralelepipedo: "));
            largura = Float.parseFloat(JOptionPane.showInputDialog(null, "Digite a Largura do Paralelepipedo: "));
            altura = Float.parseFloat(JOptionPane.showInputDialog(null, "Digite a Altura do Paralelepipedo: "));

            x = Float.parseFloat(JOptionPane.showInputDialog(null, "Digite x: "));

            y = Float.parseFloat(JOptionPane.showInputDialog(null, "Digite y: "));

            Obejtos.add(new Paralelepipedo(comprimento, largura, altura, x, y));

            JOptionPane.showMessageDialog(null, Obejtos.get(3).toString());
        }
        if (escolha == 5) {
            float areaBase, altura, x, y;

            areaBase = Float.parseFloat(JOptionPane.showInputDialog(null, "Digite a Area da base do Cone: "));
            altura = Float.parseFloat(JOptionPane.showInputDialog(null, "Digite a Altura do Cone: "));

            x = Float.parseFloat(JOptionPane.showInputDialog(null, "Digite x: "));

            y = Float.parseFloat(JOptionPane.showInputDialog(null, "Digite y: "));

            Obejtos.add(new Cone(areaBase, altura, x, y));

            JOptionPane.showMessageDialog(null, Obejtos.get(4).toString());
        }
        if (escolha == 6) {
            float raio, pi, altura, x, y;

            raio = Float.parseFloat(JOptionPane.showInputDialog(null, "Digite o Raio do Cilindro: "));
            pi = Float.parseFloat(JOptionPane.showInputDialog(null, "Digite o Valor de pi do Cilindro: "));
            altura = Float.parseFloat(JOptionPane.showInputDialog(null, "Digite a Altura do Cilindro: "));

            x = Float.parseFloat(JOptionPane.showInputDialog(null, "Digite x: "));

            y = Float.parseFloat(JOptionPane.showInputDialog(null, "Digite y: "));

            Obejtos.add(new Cilindro(raio, pi, altura, x, y));

            JOptionPane.showMessageDialog(null, Obejtos.get(5).toString());
        }
        if (escolha == 7) {
            float a, b, c, x, y;

            a = Float.parseFloat(JOptionPane.showInputDialog(null, "Digite O valor que represente A: "));
            b = Float.parseFloat(JOptionPane.showInputDialog(null, "Digite O valor que represente B: "));
            c = Float.parseFloat(JOptionPane.showInputDialog(null, "Digite O valor que represente C: "));

            x = Float.parseFloat(JOptionPane.showInputDialog(null, "Digite x: "));

            y = Float.parseFloat(JOptionPane.showInputDialog(null, "Digite y: "));

            Obejtos.add(new Bhaskara(a, b, c, x, y));

            JOptionPane.showMessageDialog(null, Obejtos.get(6).toString());
        }
        if (escolha == 8) {
            
        }
    }
    /*public void Triangulo() {

    }

    public void Quadrado() {

    }

    public void Ponto() {
    }

    public void Paralelepipedo() {

    }

    public void Cone() {

    }

    public void Cilindro() {

    }

    public void Bhaskara() {
        
    }*/
}

*//esse e outro pacote com a classe cone//*
  package principal;

import java.io.Serializable;

public class Cone extends Ponto implements Serializable{
    private float areaBase;
    private float altura;

    public Cone() {
    }

    public Cone(float areaBase, float altura, float x, float y) {
        super(x, y);
        this.areaBase = areaBase;
        this.altura = altura;
    }

 
    
    @Override
    public String toString(){
        return "Area da base: " + getAreaBase() + ", Altura: " + getAltura() + ", Volume: " + getVolume();
    }

    private float getVolume() {
        return (areaBase * altura)/3;
    }

    /**
     * @return the areaBase
     */
    public float getAreaBase() {
        return areaBase;
    }

    /**
     * @param areaBase the areaBase to set
     */
    public void setAreaBase(float areaBase) {
        this.areaBase = areaBase;
    }

    /**
     * @return the altura
     */
    public float getAltura() {
        return altura;
    }

    /**
     * @param altura the altura to set
     */
    public void setAltura(float altura) {
        this.altura = altura;
    }
    
    
}

*// e outro pacote quadrado //*
  package principal;

import java.io.Serializable;

public class Quadrado extends Ponto implements Serializable {
    private float lado;

    public Quadrado() {
    }

    public Quadrado(float lado, float x, float y) {
        super(x, y);
        this.lado = lado;
    }

   
    
    @Override
    public String toString(){
        return "Lado Quadrado: " + getLado() + ", Area Quadrado: " + getArea() + ", Perimetro Quadrado: " + getPerimetro();
    }

    private float getPerimetro() {
        return lado*4;
    }

    private float getArea() {
        return lado*lado;
    }

    /**
     * @return the lado
     */
    public float getLado() {
        return lado;
    }

    /**
     * @param lado the lado to set
     */
    public void setLado(float lado) {
        this.lado = lado;
    }
    
    
}

Boa noite estou fazendo um projeto esta quase completo porém estou com dificuldades para coloca-lo no arrayList para armazenar e para listar o que foi gravado quem puder me explicar como faço agradeço. quero armazenar as formas e depois mostras o que foi gravado.

projeto.zip

  • Curtir 1

Compartilhar este post


Link para o post
Compartilhar em outros sites

@IDexter Olá,  seria melhor você postar seus códigos em forma de texto com o botão CODE.

Já que tem muita gente que não consegue baixar o arquivo anexado.

 

 

  • Curtir 1

Compartilhar este post


Link para o post
Compartilhar em outros sites

@IDexter Olá. Como você está inserindo novos objetos na lista poderia fazer algo assim:

 

List<Object> list_objetos = new ArrayList<>();

Ex de uso:

list_objetos.add(new Ponto(x, y));

JOptionPane.showMessageDialog(null, list_objetos.get(2).toString());

Experimenta p ver se é isso q você quer

Nesse exemplo acima, estou definindo a List para a classe Object. Toda classe em Java, direta ou indiretamente, herda de Object

Mas, como todas as Classes que são figuras geométricas em seu projeto herda de Ponto, ficaria melhor assim:

List<Ponto> figurasGeometricas = new ArrayList<>();

Se tiver dúvidas quanto a imprimir é só perguntar, mas seria algo assim:

for (int i = 0; i < list_objetos.size(); i++) {
    System.out.println(list_objetos.get(i));
}

Se bem q você já está imprimindo de acordo com os índices. É q não estou conseguindo rodar o código aqui

Obs: Estou usando a sintaxe comum em C para o nome de variáveis, tal como na List

Esse underline acima é comum se usar em C, que é a linguagem na qual estou mais focado rs...

 

Atualizando:

Agora rodou aqui, e a melhor foma de imprimir os elementos adicionados na List seria essa:

for (Ponto p : figurasGeometricas) {
    System.out.println(p.toString());
}

Ou dessa forma mais comum:

for (int i = 0; i < figurasGeometricas.size(); i++) {
    System.out.println(figurasGeometricas.get(i).toString());
}

Isso para imprimir no console, mas apenas para saber como é

Quanto a trabalhar com interface gráfica em Java eu já comecei com o JavaFX direto, vi muita pouca coisa sobre o Swing

 

Amigo, só entenda uma coisa: Do modo como você está acessando os índices não vai dar certo, pois cada item da lista está sendo adicionado a List apenas se o bloco if correspondente é executado, por isso você pode ter problemas ao acessar os índices dessa forma

Por exemplo: Se eu escolher a opção 3, que é o quadrado, apenas um elemento será adicionado a List, pois os métodos q adicionam outros elementos na List não estão sendo chamados (executados), logo, o índice teria q ser o 0 para todos os elementos. Ficou confuso isso, mas creio q vai entender

Teria q adicionar os elementos todos ao final dos ifs, ou acessar apenas o índice 0 da List para todos os elementos 

Entendeu essa parte?

 

Qualquer dúvida é só perguntar. ok?

  • Curtir 1
  • Amei 1

Compartilhar este post


Link para o post
Compartilhar em outros sites

@IDexter Olá de novo. Agora vendo e pensando melhor em seu projeto fui perceber q sua intenção é a de cadastrar mais de um item. Logo, uma maneira relativamente simples de se fazer isso seria assim na classe Principal:

private int escolha;

private float altura, base, lado, lado1, lado2, lado3, x, y;

private float comprimento, largura, areaBase;

private float raio, pi;

private float a, b, c;

private int indexAtual = 0;

private List<Ponto> figurasGeometricas = new ArrayList<>();

public Principal() {
    this.Escolha();
    /*
     * Triangulo(); Quadrado(); Ponto(); Paralelepipedo(); Cone(); Cilindro();
     * Bhaskara();
     */
}

public void Escolha() {

    do {
        escolha = Integer.parseInt(JOptionPane.showInputDialog(null,
                                   "O que Deseja Calcular: \n 1 - Ponto. \n 2 - Triangulo.\n " + "3 - Quadrado.\n"
                                   + "4 - Paralelepipedo.\n" + "5 - Cone.\n" + "6 - Cilindro.\n" + "7 - Bhaskara.\n"
                                   + "8 - Listar Todos Cadastrados.\n" + "9 - Sair"));

        switch (escolha) {

        case 1:
            x = Float.parseFloat(JOptionPane.showInputDialog(null, "Digite x: "));

            y = Float.parseFloat(JOptionPane.showInputDialog(null, "Digite y: "));

            figurasGeometricas.add(new Ponto(x, y));

            JOptionPane.showMessageDialog(null, figurasGeometricas.get(indexAtual).toString());
            break;
        case 2:
            altura = Float.parseFloat(JOptionPane.showInputDialog(null, "Digite a Altura do Triangulo: "));
            base = Float.parseFloat(JOptionPane.showInputDialog(null, "Digite a Base do Tringulo: "));

            lado1 = Float.parseFloat(JOptionPane.showInputDialog(null, "Digite o Lado 1 do Triangulo "));
            lado2 = Float.parseFloat(JOptionPane.showInputDialog(null, "Digite o Lado 2 do Tringulo: "));
            lado3 = Float.parseFloat(JOptionPane.showInputDialog(null, "Digite o Lado 3 do Tringulo: "));

            x = Float.parseFloat(JOptionPane.showInputDialog(null, "Digite x: "));

            y = Float.parseFloat(JOptionPane.showInputDialog(null, "Digite y: "));

            figurasGeometricas.add(new Triangulo(altura, base, lado1, lado2, lado3, x, y));

            JOptionPane.showMessageDialog(null, figurasGeometricas.get(indexAtual).toString());
            break;
        case 3:
            lado = Float.parseFloat(JOptionPane.showInputDialog(null, "Digite o Lado do Quadrado: "));

            x = Float.parseFloat(JOptionPane.showInputDialog(null, "Digite x: "));

            y = Float.parseFloat(JOptionPane.showInputDialog(null, "Digite y: "));

            figurasGeometricas.add(new Quadrado(lado, x, y));

            JOptionPane.showMessageDialog(null, figurasGeometricas.get(indexAtual).toString());
            break;
        case 4:
            comprimento = Float
                          .parseFloat(JOptionPane.showInputDialog(null, "Digite o Comprimento do Paralelepipedo: "));
            largura = Float.parseFloat(JOptionPane.showInputDialog(null, "Digite a Largura do Paralelepipedo: "));
            altura = Float.parseFloat(JOptionPane.showInputDialog(null, "Digite a Altura do Paralelepipedo: "));

            x = Float.parseFloat(JOptionPane.showInputDialog(null, "Digite x: "));

            y = Float.parseFloat(JOptionPane.showInputDialog(null, "Digite y: "));

            figurasGeometricas.add(new Paralelepipedo(comprimento, largura, altura, x, y));

            JOptionPane.showMessageDialog(null, figurasGeometricas.get(indexAtual).toString());
            break;
        case 5:
            areaBase = Float.parseFloat(JOptionPane.showInputDialog(null, "Digite a Area da base do Cone: "));
            altura = Float.parseFloat(JOptionPane.showInputDialog(null, "Digite a Altura do Cone: "));

            x = Float.parseFloat(JOptionPane.showInputDialog(null, "Digite x: "));

            y = Float.parseFloat(JOptionPane.showInputDialog(null, "Digite y: "));

            figurasGeometricas.add(new Cone(areaBase, altura, x, y));

            JOptionPane.showMessageDialog(null, figurasGeometricas.get(indexAtual).toString());
            break;
        case 6:
            raio = Float.parseFloat(JOptionPane.showInputDialog(null, "Digite o Raio do Cilindro: "));
            pi = Float.parseFloat(JOptionPane.showInputDialog(null, "Digite o Valor de pi do Cilindro: "));
            altura = Float.parseFloat(JOptionPane.showInputDialog(null, "Digite a Altura do Cilindro: "));

            x = Float.parseFloat(JOptionPane.showInputDialog(null, "Digite x: "));

            y = Float.parseFloat(JOptionPane.showInputDialog(null, "Digite y: "));

            figurasGeometricas.add(new Cilindro(raio, pi, altura, x, y));

            JOptionPane.showMessageDialog(null, figurasGeometricas.get(indexAtual).toString());
            break;
        case 7:
            a = Float.parseFloat(JOptionPane.showInputDialog(null, "Digite O valor que represente A: "));
            b = Float.parseFloat(JOptionPane.showInputDialog(null, "Digite O valor que represente B: "));
            c = Float.parseFloat(JOptionPane.showInputDialog(null, "Digite O valor que represente C: "));

            x = Float.parseFloat(JOptionPane.showInputDialog(null, "Digite x: "));

            y = Float.parseFloat(JOptionPane.showInputDialog(null, "Digite y: "));

            figurasGeometricas.add(new Bhaskara(a, b, c, x, y));

            JOptionPane.showMessageDialog(null, figurasGeometricas.get(indexAtual).toString());
            break;
        case 8:
            for (int i = 0; i < figurasGeometricas.size(); i++) {
                JOptionPane.showMessageDialog(null, figurasGeometricas.get(i).toString());
            }
            break;
        case 9:
            // Sair
            break;
        default:
            JOptionPane.showMessageDialog(null, "Opção inválida!");
            indexAtual--;
            break;
        }

        if (escolha != 8) {
            indexAtual++;
        }

    } while (escolha != 9);

}

Qualquer dúvida é só perguntar, ok?

Vê se é isso que você quer

  • Curtir 1

Compartilhar este post


Link para o post
Compartilhar em outros sites

Opa olá novamente, só queria saber como faço para mostrar os resultados armazenados tanto na aba depois de selecionar a opção 8 , e na saída principal(run).

  • Curtir 1

Compartilhar este post


Link para o post
Compartilhar em outros sites

@IDexter Olá. Você quer saber como mostrar todos os itens cadastrados tanto na janela (Swing) como no console?

Se é isso mesmo seria isso:

case 8:
    // mostrar os itens cadastrados no console (saída padrão em Java)
    for (int i = 0; i < figurasGeometricas.size(); i++) {
        System.out.println(figurasGeometricas.get(i).toString());
    }
    // mostrar os itens cadastrados na janela (Swing)
    for (int i = 0; i < figurasGeometricas.size(); i++) {
        JOptionPane.showMessageDialog(null, figurasGeometricas.get(i).toString());
    }
break;

Pelo q entendi seria assim (2 itens cadastrados):

 

Capturar.PNG.12f574ec13b9f2e39d7a15f70aa8047e.PNG

 

Esses for do modo como estou fazendo percorre toda a lista, logo, se tiver 10 ou mais itens cadastrados todos serão impressos do modo como você sobrescreveu o método toString(), tal como na figura acima

 

Também é possível usar um único for para isso:

// mostrar os itens cadastrados no console (saída padrão em Java) e na janela (Swing)
for (int i = 0; i < figurasGeometricas.size(); i++) {
    System.out.println(figurasGeometricas.get(i).toString()); // console
    JOptionPane.showMessageDialog(null, figurasGeometricas.get(i).toString()); // janela Swing
}

Já se a pergunta se refere ao Java Swing é só falar

Pois pode ser na aba da janela feita em Swing, aí seria algo como nesse vídeo:

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

 

OBS: Se é isso mesmo é como mostrei acima no código. Porém, se entendi errado a pergunta, pode ficar a vontade para explicar melhor como você quer exatamente mostrar os resultados, ok?

Estamos aqui p isso. Só gostaria q não ficasse com nenhuma dúvida 😁

 

Desculpa, mas confesso que fiquei meio que sem entender direito a pergunta

  • Curtir 1

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá novamente a questão de mostrar os dados agora já ok, agora só o que preciso e que os resultados estejam um embaixo do outro,se não me engano precisaria do  \n só não estou sabendo inseri-lo corretamente como ficaria para coloca-lo.

package principal;

import java.io.EOFException;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;
import java.util.ArrayList;
import javax.swing.JOptionPane;
import javax.swing.JScrollPane;
import javax.swing.JTextArea;

public class Principal {

    private ArrayList figurasGeometricas = new ArrayList();

    public static void main(String[] args) {

        new Principal();
     

    }

    public Principal() {
        carregar("c:/temp/objetosCadastrados.dat", figurasGeometricas);
        Escolha();
        
    }

    public void Objetos_Predefinidos() {
        figurasGeometricas.add(new Bhaskara(2f, 6f, 8f));
        figurasGeometricas.add(new Cilindro(5f, 8f));
        figurasGeometricas.add(new Cone(6f, 3f));
        figurasGeometricas.add(new Paralelepipedo(3f, 6f, 9f));
        figurasGeometricas.add(new Ponto(6f, 2f));
        figurasGeometricas.add(new Quadrado(7f));
        figurasGeometricas.add(new Triangulo(3f, 8f, 1f));
    }

    public void Escolha() {
        int escolha = 0;

        do {
            escolha = Integer.parseInt(JOptionPane.showInputDialog(null,
                    "O que Deseja Calcular: \n 1 - Ponto. \n 2 - Triangulo.\n " + "3 - Quadrado.\n"
                    + "4 - Paralelepipedo.\n" + "5 - Cone.\n" + "6 - Cilindro.\n" + "7 - Bhaskara.\n"
                    + "8 - Listar Todos Cadastrados.\n" + "9 - Sair"));

            switch (escolha) {

                case 1:
                    ponto();
                    break;
                case 2:
                    float lado1 = Float.parseFloat(JOptionPane.showInputDialog(null, "Digite o Lado 1 do Triangulo "));
                    float lado2 = Float.parseFloat(JOptionPane.showInputDialog(null, "Digite o Lado 2 do Tringulo: "));
                    float lado3 = Float.parseFloat(JOptionPane.showInputDialog(null, "Digite o Lado 3 do Tringulo: "));
                    figurasGeometricas.add(new Triangulo(lado1, lado2, lado3));
                    Triangulo trian = new Triangulo(lado1, lado2, lado3);

                    JOptionPane.showMessageDialog(null, trian.toString());
                    salvar("c:/temp/objetosCadastrados.dat", figurasGeometricas);
                    break;
                case 3:
                    float lado = Float.parseFloat(JOptionPane.showInputDialog(null, "Digite o Lado do Quadrado: "));
                    figurasGeometricas.add(new Quadrado(lado));
                    Quadrado quad = new Quadrado(lado);
                    JOptionPane.showMessageDialog(null, quad.toString());
                    salvar("c:/temp/objetosCadastrados.dat", figurasGeometricas);
                    break;
                case 4:
                    float comprimento = Float.parseFloat(JOptionPane.showInputDialog(null, "Digite o Comprimento do Paralelepipedo: "));
                    float largura = Float.parseFloat(JOptionPane.showInputDialog(null, "Digite a Largura do Paralelepipedo: "));
                    float altura = Float.parseFloat(JOptionPane.showInputDialog(null, "Digite a Altura do Paralelepipedo: "));

                    figurasGeometricas.add(new Paralelepipedo(comprimento, largura, altura));
                    Paralelepipedo para = new Paralelepipedo(comprimento, largura, altura);

                    JOptionPane.showMessageDialog(null, para.toString());
                    salvar("c:/temp/objetosCadastrados.dat", figurasGeometricas);
                    break;
                case 5:
                    float areaBaseCone = Float.parseFloat(JOptionPane.showInputDialog(null, "Digite a Area da base do Cone: "));
                    float alturadoCone = Float.parseFloat(JOptionPane.showInputDialog(null, "Digite a Altura do Cone: "));
                    figurasGeometricas.add(new Cone(areaBaseCone, alturadoCone));
                    Cone cone = new Cone(areaBaseCone, alturadoCone);
                    JOptionPane.showMessageDialog(null, cone.toString());
                    salvar("c:/temp/objetosCadastrados.dat", figurasGeometricas);
                    break;
                case 6:
                    float raioCil = Float.parseFloat(JOptionPane.showInputDialog(null, "Digite o Raio do Cilindro: "));
                    float alturaCil = Float.parseFloat(JOptionPane.showInputDialog(null, "Digite a Altura do Cilindro: "));

                    figurasGeometricas.add(new Cilindro(raioCil, alturaCil));
                    Cilindro cil = new Cilindro(raioCil, alturaCil);

                    JOptionPane.showMessageDialog(null, cil.toString());
                    salvar("c:/temp/objetosCadastrados.dat", figurasGeometricas);
                    break;
                case 7:
                    float a = Float.parseFloat(JOptionPane.showInputDialog(null, "Digite O valor que represente A: "));
                    float b = Float.parseFloat(JOptionPane.showInputDialog(null, "Digite O valor que represente B: "));
                    float c = Float.parseFloat(JOptionPane.showInputDialog(null, "Digite O valor que represente C: "));

                    figurasGeometricas.add(new Bhaskara(a, b, c));
                    Bhaskara Bash = new Bhaskara(a, b, c);

                    JOptionPane.showMessageDialog(null, Bash.toString());

                    salvar("c:/temp/objetosCadastrados.dat", figurasGeometricas);
                    break;
                case 8:
                    
                   mostra_todos();
        //System.out.println("ponto: \n" +figurasGeometricas.);

                    break;
                case 9:
                    JOptionPane.showMessageDialog(null, "Até logo!");
                   
                    // Sair
                    break;
                default:
                    JOptionPane.showMessageDialog(null, "Opção inválida!");
                    

            }
        } while (escolha != 9);

    }

    public void mostra_todos() {
        String janela = "";
        for (int i = 0; i < figurasGeometricas.size(); i++) {
                janela += figurasGeometricas.get(i).toString();
        }
        JTextArea outputArea = new JTextArea(20, 60);  //15 linhas e 50 colunas
        outputArea.setText(janela);
        JScrollPane rolagem = new JScrollPane(outputArea);
        JOptionPane.showMessageDialog(null, rolagem, "Cálculos cadastrados no Programa Matematíco",
                JOptionPane.INFORMATION_MESSAGE);
    }

    public boolean salvar(String filename, ArrayList vetor) {
        //Este método gravará no arquivo 'filename' o conteúdo do 'vetor'
        try {
            FileOutputStream fos = new FileOutputStream(filename);
            ObjectOutputStream out = new ObjectOutputStream(fos);
            for (int i = 0; i < vetor.size(); i++) {
                out.writeObject(vetor.get(i));  //gravamos o objeto no arquivo
            }
            System.out.println("Salvado com Sucesso");
            out.close();
            fos.close();
        } catch (Exception ex) {
            JOptionPane.showMessageDialog(null, "Erro salvando objetos... " + ex.getMessage());
            return false; //se deu algum erro, retornaremos false
        }
        return true; //deu tudo certo, retornaremos true
    } //fim do método salvar

    public boolean carregar(String filename, ArrayList vetor) {
        //Este método carrega os objetos serializados gravados em 'filename' no vetor 'vetor'.
        FileInputStream fiz;
        ObjectInputStream in;

        try {
            fiz = new FileInputStream(filename);
            in = new ObjectInputStream(fiz);
            vetor.clear(); //esvaziamos o ArrayList
            boolean sair = false;
            do {
                try {
                    Object info = in.readObject(); // lê um objeto do arquivo
                    vetor.add(info); // adiciona na lista o objeto lido; supondo memória suficiente

                } catch (EOFException normalEof) {
                    sair = true; // EOF (end of file), situação normal => acabaram os objetos
                }
            } while (!sair);

            in.close();
            fiz.close();
        } catch (Exception e) {
            JOptionPane.showMessageDialog(null, "Erro carregando objetos... " + e.getMessage());
            return false;
        }
        return true;
    } //fim do método carregar

    public void ponto() {
        float x = Float.parseFloat(JOptionPane.showInputDialog(null, "Digite x: "));

        float y = Float.parseFloat(JOptionPane.showInputDialog(null, "Digite y: "));

        figurasGeometricas.add(new Ponto(x, y));

        salvar("c:/temp/objetosCadastrados.dat", figurasGeometricas);
    }
}

 

  • Curtir 1

Compartilhar este post


Link para o post
Compartilhar em outros sites

@IDexter Olá. Cara, com essa sua pergunta eu pensei e repensei muito antes de responder

Como disse acima, eu não estudei sobre o Java Swing. Para trabalhar com interface gráfica em Java, eu já investi logo de cara no JavaFX. Porém, baseado no q estudei a respeito do JavaFX e claro, do Java, como você já criou o método mostra_todos() deu para ver que apenas faltou inserir esse '\n' no for que você criou. Seria isso:

String janela = "";
for (int i = 0; i < figurasGeometricas.size(); i++) {
    janela += figurasGeometricas.get(i).toString() + "\n"; // faltou apenas inserir esse '\n' no final da String
}
// restante do método mostrar_todos();

Pelo q entendi é isso

Também não posso de comentar q gostei muito do código q você postou agora. Cara... é por aí mesmo!

 

Qualquer dúvida é só perguntar, ok?

Só não me coloca em um aperto como esse de agora de novo rs... 😅

  • Obrigado 1

Compartilhar este post


Link para o post
Compartilhar em outros sites

Era isso mesmo obrigado por toda ajuda. So uma duvida o que não gostou no código sei que esta meio cheio de coisas fiz com meu colega,  caso queria  dar alguma dica que eu possa ultizar no meu proximo projeto :).

Compartilhar este post


Link para o post
Compartilhar em outros sites

@IDexter Cara. Eu gostei do código! Só que pela forma como fiz uso das palavras nesse feedback acabou ficando um certo duplo sentido

Já tratei de corrigir a frase 

É isso aí mesmo! 😉

 

Também foi um alívio bastante grande saber q a resposta q dei acima está correta. Me apertou com essa rs... Mas o lado bom disso é q dessa forma a gente vai adquirindo mais experiência e também vai amadurecendo mais com respeito a programação, seja em Java ou em C

Por isso gosto de responder a tópicos aqui no fórum de Java, mesmo estando focado no C. Me parece mais "desafiador" o negócio. E, claro, por gostar muito do Java e de programação orientada a objetos, que é o ponto que mais sinto falta no C

Obs: Com respeito a trabalhar com arquivos em Java, seja leitura, gravação ou atualização, apesar de eu ter estudado isso em Java, pratiquei muito pouco esse ponto. Resultado: Não aprendi a trabalhar com arquivos como deveria (ou poderia) em Java

Forte abraço!

 

Se acado tiver mais alguma dúvida é só perguntar!

  • Obrigado 1

Compartilhar este post


Link para o post
Compartilhar em outros sites

@IDexter Olá. Só um ponto q gostaria de frisar com respeito a esse projeto: Se, por exemplo, ao ser exibido o menu, eu optar por clicar no botão Cancelar, uma exceção é lançada do tipo NumberFormatException. Logo, seria interessante ajustar essa parte. 

Pesquisando um  pouco deu para resolver dessa forma:

try {
    escolha = Integer.parseInt(JOptionPane.showInputDialog(null,
                               "O que Deseja Calcular: \n 1 - Ponto. \n 2 - Triangulo.\n " + "3 - Quadrado.\n"
                               + "4 - Paralelepipedo.\n" + "5 - Cone.\n" + "6 - Cilindro.\n" + "7 - Bhaskara.\n"
                               + "8 - Listar Todos Cadastrados.\n" + "9 - Sair"));
} catch (NumberFormatException e) {
    JOptionPane.showMessageDialog(null, "Nenhum valor válido foi informado. O programa será finalizado!"); // Vale tanto para o botao Ok qto para o Cancelar em caso de nenhum valor ser digitado
    System.exit(0);
}

Já que chegamos até aqui vejo ser importante esse ajuste no código

 

Abraço!

  • 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

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora





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

×