0
Good night,
I have a Master Class:
        import static javax.swing.JOptionPane.*;
        import java.util.ArrayList;
        import java.util.List;
        import static java.lang.Integer.parseInt;
        public class Principal {
            public static void main(String[] args) {
                // TODO Auto-generated method stub
                List<Imovel> lista1 = new ArrayList<>();
                List<Locacao> lista2 = new ArrayList<>();
                Imovel imovel = new Imovel(0, 0, 0, false);
                Imobiliaria imobiliaria = new Imobiliaria();
                int opcao = 0;
                do {
                    try {
                        opcao = parseInt(showInputDialog(Imobiliaria.menu()));
                        if(opcao < 1 || opcao >6) {
                            throw new OpcaoInvalidaException("Opcao Invalida");
                        } else {
                            switch(opcao) {
                            case 1: 
                                Imobiliaria.registrarImovel(imovel);
                                break;
                            case 2:
                                Imobiliaria.ListarDisponivel(lista1);
                                break;
                            }
                        }
                    }catch (NumberFormatException e) {
                        showMessageDialog(null, e);
                    }
                    catch(OpcaoInvalidaException e) {
                        showMessageDialog(null, e);
                    }
                } while(opcao != 6);
            }
        }
And I have a class called Immovable :
        public class Imovel {
            private int codigo;
            private int metragem;
            private double valorMetroQuadrado;
            private boolean disponivel;
            public Imovel(int codigo, int metragem, double valorMetroQuadrado, boolean disponivel) {
                super();
                this.codigo = codigo;
                this.metragem = metragem;
                this.valorMetroQuadrado = valorMetroQuadrado;
                this.disponivel = disponivel;
                disponivel = true;
            }
            @Override
            public String toString() {
                String aux = "";
                String dispo = "O quarto está disponivel";
                aux += "O codigo do imovel é " + codigo + "\n";
                aux += "A metragem do imovel é " + metragem + "\n";
                aux += "O valor do metro quadrado é " + valorMetroQuadrado + "\n";
                if(disponivel == false) {
                    dispo =  "O quarto não está disponivel";
                }
                aux += dispo;
                return aux;
            }
            public int getCodigo() {
                return codigo;
            }
            public void setCodigo(int codigo) {
                this.codigo = codigo;
            }
            public int getMetragem() {
                return metragem;
            }
            public void setMetragem(int metragem) {
                this.metragem = metragem;
            }
            public double getValorMetroQuadrado() {
                return valorMetroQuadrado;
            }
            public void setValorMetroQuadrado(double valorMetroQuadrado) {
                this.valorMetroQuadrado = valorMetroQuadrado;
            }
            public boolean isDisponivel() {
                return disponivel;
            }
            public void setDisponivel(boolean disponivel) {
                this.disponivel = disponivel;
            }
        }
A Commercial class:
        public class Comercial extends Imovel {
            private int numeroDeSalas;
            public Comercial(int codigo, int metragem, double valorMetroQuadrado, boolean disponivel, int numeroDeSalas) {
                super(codigo, metragem, valorMetroQuadrado, disponivel);
                this.numeroDeSalas = numeroDeSalas;
            }
            @Override
            public String toString() {
                String aux = "";
                aux += "O numero de sala é " + numeroDeSalas + "\n";
                return aux;
            }
            public int getNumeroDeSalas() {
                return numeroDeSalas;
            }
            public void setNumeroDeSalas(int numeroDeSalas) {
                this.numeroDeSalas = numeroDeSalas;
            }
            public double calcularAluguel() {
                return getMetragem()*getValorMetroQuadrado()+550*getNumeroDeSalas();
            }
        }
Another class called Residential:
        public class Residencial extends Imovel {
            private int numeroDeQuartos;
            public Residencial(int codigo, int metragem, double valorMetroQuadrado, boolean disponivel, int numeroDeQuartos) {
                super(codigo, metragem, valorMetroQuadrado, disponivel);
                this.numeroDeQuartos = numeroDeQuartos;
            }
            @Override
            public String toString() {
                String aux = "";
                aux += "O numero de quartos é " + numeroDeQuartos + "\n";
                return aux;
            }
            public int getNumeroDeQuartos() {
                return numeroDeQuartos;
            }
            public void setNumeroDeQuartos(int numeroDeQuartos) {
                this.numeroDeQuartos = numeroDeQuartos;
            }
            public double calcularAluguel() {
                return getMetragem()*getValorMetroQuadrado()+300*getNumeroDeQuartos();
            }
        }
and finally the most important Real Estate
        import java.io.ObjectInputStream.GetField;
        import java.util.ArrayList;
        import java.util.Iterator;
        import java.util.List;
        import static java.lang.Integer.parseInt;
        import static java.lang.Long.parseLong;
        import static javax.swing.JOptionPane.showInputDialog;
        import static javax.swing.JOptionPane.showMessageDialog;
        public class Imobiliaria {
            private static List<Imovel> lista1 = new ArrayList<Imovel>();
            private static List<Locacao> lista2 = new ArrayList<Locacao>();
            private static Residencial residencial = new Residencial(0, 0, 0, false, 0);
            static String menu() {
                String aux = "";
                aux += "1 - Registrar Imovel \n";
                aux += "2 - Listar Imoveis disponiveos \n";
                aux += "3 - Listar Imoveis ALUGADOS \n";
                aux += "4 - Realizar Locação \n";
                aux += "5 - Finalizar Locação \n";
                aux += "6 - Finalizar \n";
                return aux;
            }
            public static void registrarImovel(Imovel imovel) throws OpcaoInvalidaException {
                int codigo, metragem,opcao = 0,numeroDeQuartos,numeroDeSalas;
                boolean disponivel;
                double valorMetroQuadrado;
                opcao = parseInt(showInputDialog("Qual tipo de imovel?\n1. Residencial\n2. Comercial"));
                if(opcao < 1 ||opcao > 2) {
                    throw new OpcaoInvalidaException("Opcao Invalida");
                } else if(opcao == 1) {
                    codigo = parseInt(showInputDialog("Digite o código do imovel"));
                    metragem = parseInt(showInputDialog("Digite a metragem do imovel"));
                    valorMetroQuadrado = parseInt(showInputDialog("Digite o valor do metro quadrado"));
                    numeroDeQuartos = parseInt(showInputDialog("Digite o numero de quartos"));
                    disponivel = true;
                    lista1.add(new Residencial(codigo, metragem, valorMetroQuadrado, disponivel, numeroDeQuartos));
                }
                else {
                    codigo = parseInt(showInputDialog("Digite o código do imovel"));
                    metragem = parseInt(showInputDialog("Digite a metragem do imovel"));
                    valorMetroQuadrado = parseInt(showInputDialog("Digite o valor do metro quadrado"));
                    numeroDeSalas = parseInt(showInputDialog("Digite o numero de quartos"));
                    disponivel = true;
                    lista1.add(new Comercial(codigo, metragem, valorMetroQuadrado, disponivel, numeroDeSalas));
                }
            }
            public static void ListarDisponivel(List<Imovel> lista1) {
                String ListarResidencial = "";
                String ListarComercial;
                ListarResidencial += "IMOVEIS RESIDENCIAL -----------------";
                for(Imovel imovel : lista1) {
                    ListarResidencial += "teste";
                    ListarResidencial += imovel.getCodigo();
                    ListarResidencial += imovel.getMetragem();
                    ListarResidencial += imovel.getValorMetroQuadrado();
                    ListarResidencial += residencial.getNumeroDeQuartos();
                }
                showMessageDialog(null, ListarResidencial);
            }
        }
In the Real Estate class there is a menu where I create and ask if it is residential or commercial so I take the data and add in the list with list.
however after that I try to return this data, but the data is not returned, nor null appears anything just closes...