PROBLEMA COM LOOP,é o seguinte pessoal,fiz um código e coloquei a entrada em JOptionPane,ai coloquei if else para que ao clicar em não,não mostrasse a tabela,porém mesmo clicando no não o programa continua mostrando a tabela,podem me ajudar?

4 respostas
loopjava
A
import javax.swing.JOptionPane;

import java.awt.Dimension;

import javax.swing.*;

public class Brasileirao01 {

/**
 * @param args the command line arguments
 */
public static void main(String[] args) {

 
    
   
    String nome = "";
  nome = JOptionPane.showInputDialog(null, "Digite o seu nome");
    
 JOptionPane.showMessageDialog(null,   "Olá"   +nome+" Seja bem vindo a tabela do brasileirão");
 int _entrada = JOptionPane.showConfirmDialog(null, "Deseja conferir a tabela do brasileirão?");
  
 if (_entrada==JOptionPane.YES_OPTION){
     System.out.println("Usuario confirmou a entrada");
 }else if(_entrada == JOptionPane.NO_OPTION){
     System.out.println("Usuario não confirmou a entrada");
 }else{
     System.out.println("Usuario cancelou a entrada");
 }
   
    Time sp = new Time("São Paulo",78,38,22,12,4,66,32,34);
    Time inter = new Time("Internacional",69,38,20,9,9,52,36,16);
    Time gremio = new Time("Grêmio",67,38,20,7,11,64,45,19);
    Time santos = new Time("Santos",64,38,18,10,10,58,36,22);
    Time parana = new Time("Paraná",60,38,18,6,14,56,49,7);
    Time vasco = new Time("Vasco da Gama",59,38,15,14,9,57,50,7);
    Time fig = new Time("Figueirense",57,38,15,12,11,52,44,8);
    Time goias = new Time("Goiás",5,38,15,0,13,63,49,14);
    Time corinthians = new Time("Corinthians",53,38,15,8,15,41,46,-5);
    Time cruz = new Time("Cruzeiro",53,38,14,11,13,52,45,7);
    Time flamengo = new Time("Flamengo",52,38,15,7,16,44,48,-4);
    Time botafogo = new Time("Botafogo",51,38,13,12,13,52,50,2);
    Time athletico = new Time("Athletico-PR",48,38,13,9,16,61,62,-1);
    Time juventude = new Time("Juventude",47,38,13,8,17,44,54,-10);
    Time flu = new Time("Fluminense",45,38,11,12,15,48,58,-10);
    Time palmeiras = new Time("Palmeiras",44,38,12,8,18,58,70,-12);
    Time ponte = new Time("Ponte Preta",39,38,10,9,19,45,65,-20);
    Time fortaleza = new Time("Fortaleza",38,38,8,14,16,39,62,-23);
    Time caetano = new Time("São Caetano",36,38,9,9,20,37,53,-16);
    Time santa = new Time("Sant Cruz",28,38,7,7,24,41,76,-35);
            
    String [] titulo ={"Posição","Clube", "Pts", "PJ", "VIT", "E", "DER", "GP", "GC", "SC"};
    Object[][] dados = {
                  {"1",sp.getNome(), Integer.toString(sp.getPts()), Integer.toString(sp.getPJ()), Integer.toString(sp.getVIT()), Integer.toString(sp.getE()), Integer.toString(sp.getDER()), Integer.toString(sp.getGP()), Integer.toString(sp.getGC()), Integer.toString(sp.getSG())},
                  {"2",inter.getNome(), Integer.toString(inter.getPts()), Integer.toString(inter.getPJ()), Integer.toString(inter.getVIT()), Integer.toString(inter.getE()), Integer.toString(inter.getDER()), Integer.toString(inter.getGP()), Integer.toString(inter.getGC()), Integer.toString(inter.getSG())},
                  {"3",gremio.getNome(), Integer.toString(gremio.getPts()), Integer.toString(gremio.getPJ()), Integer.toString(gremio.getVIT()), Integer.toString(gremio.getE()), Integer.toString(gremio.getDER()), Integer.toString(gremio.getGP()), Integer.toString(gremio.getGC()), Integer.toString(gremio.getSG())},
                  {"4",santos.getNome(), Integer.toString(santos.getPts()), Integer.toString(santos.getPJ()), Integer.toString(santos.getVIT()), Integer.toString(santos.getE()), Integer.toString(santos.getDER()), Integer.toString(santos.getGP()), Integer.toString(santos.getGC()), Integer.toString(santos.getSG())},
                  {"5",parana.getNome(), Integer.toString(parana.getPts()), Integer.toString(parana.getPJ()), Integer.toString(parana.getVIT()), Integer.toString(parana.getE()), Integer.toString(parana.getDER()), Integer.toString(parana.getGP()), Integer.toString(parana.getGC()), Integer.toString(parana.getSG())},
                  {"6",vasco.getNome(), Integer.toString(vasco.getPts()), Integer.toString(vasco.getPJ()), Integer.toString(vasco.getVIT()), Integer.toString(vasco.getE()), Integer.toString(vasco.getDER()), Integer.toString(vasco.getGP()), Integer.toString(vasco.getGC()), Integer.toString(vasco.getSG())},
                  {"7",fig.getNome(), Integer.toString(fig.getPts()), Integer.toString(fig.getPJ()), Integer.toString(fig.getVIT()), Integer.toString(fig.getE()), Integer.toString(fig.getDER()), Integer.toString(fig.getGP()), Integer.toString(fig.getGC()), Integer.toString(fig.getSG())},
                  {"8",goias.getNome(), Integer.toString(goias.getPts()), Integer.toString(goias.getPJ()), Integer.toString(goias.getVIT()), Integer.toString(goias.getE()), Integer.toString(goias.getDER()), Integer.toString(goias.getGP()), Integer.toString(goias.getGC()), Integer.toString(goias.getSG())},
                  {"9",corinthians.getNome(), Integer.toString(corinthians.getPts()), Integer.toString(corinthians.getPJ()), Integer.toString(corinthians.getVIT()), Integer.toString(corinthians.getE()), Integer.toString(corinthians.getDER()), Integer.toString(corinthians.getGP()), Integer.toString(corinthians.getGC()), Integer.toString(corinthians.getSG())},
                  {"10",cruz.getNome(), Integer.toString(cruz.getPts()), Integer.toString(cruz.getPJ()), Integer.toString(cruz.getVIT()), Integer.toString(cruz.getE()), Integer.toString(cruz.getDER()), Integer.toString(cruz.getGP()), Integer.toString(cruz.getGC()), Integer.toString(cruz.getSG())},
                  {"11",flamengo.getNome(), Integer.toString(flamengo.getPts()), Integer.toString(flamengo.getPJ()), Integer.toString(flamengo.getVIT()), Integer.toString(flamengo.getE()), Integer.toString(flamengo.getDER()), Integer.toString(flamengo.getGP()), Integer.toString(flamengo.getGC()), Integer.toString(flamengo.getSG())},
                  {"12",botafogo.getNome(), Integer.toString(botafogo.getPts()), Integer.toString(botafogo.getPJ()), Integer.toString(botafogo.getVIT()), Integer.toString(botafogo.getE()), Integer.toString(botafogo.getDER()), Integer.toString(botafogo.getGP()), Integer.toString(botafogo.getGC()), Integer.toString(botafogo.getSG())},
                  {"13",athletico.getNome(), Integer.toString(athletico.getPts()), Integer.toString(athletico.getPJ()), Integer.toString(athletico.getVIT()), Integer.toString(athletico.getE()), Integer.toString(athletico.getDER()), Integer.toString(athletico.getGP()), Integer.toString(athletico.getGC()), Integer.toString(athletico.getSG())},
                  {"14",juventude.getNome(), Integer.toString(juventude.getPts()), Integer.toString(juventude.getPJ()), Integer.toString(juventude.getVIT()), Integer.toString(juventude.getE()), Integer.toString(juventude.getDER()), Integer.toString(juventude.getGP()), Integer.toString(juventude.getGC()), Integer.toString(juventude.getSG())},
                  {"15",flu.getNome(), Integer.toString(flu.getPts()), Integer.toString(flu.getPJ()), Integer.toString(flu.getVIT()), Integer.toString(flu.getE()), Integer.toString(flu.getDER()), Integer.toString(flu.getGP()), Integer.toString(flu.getGC()), Integer.toString(flu.getSG())},
                  {"16",palmeiras.getNome(), Integer.toString(palmeiras.getPts()), Integer.toString(palmeiras.getPJ()), Integer.toString(palmeiras.getVIT()), Integer.toString(palmeiras.getE()), Integer.toString(palmeiras.getDER()), Integer.toString(palmeiras.getGP()), Integer.toString(palmeiras.getGC()), Integer.toString(palmeiras.getSG())},
                  {"17",ponte.getNome(), Integer.toString(ponte.getPts()), Integer.toString(ponte.getPJ()), Integer.toString(ponte.getVIT()), Integer.toString(ponte.getE()), Integer.toString(ponte.getDER()), Integer.toString(ponte.getGP()), Integer.toString(ponte.getGC()), Integer.toString(ponte.getSG())},
                  {"18",fortaleza.getNome(), Integer.toString(fortaleza.getPts()), Integer.toString(fortaleza.getPJ()), Integer.toString(fortaleza.getVIT()), Integer.toString(fortaleza.getE()), Integer.toString(fortaleza.getDER()), Integer.toString(fortaleza.getGP()), Integer.toString(fortaleza.getGC()), Integer.toString(fortaleza.getSG())},
                  {"19",caetano.getNome(), Integer.toString(caetano.getPts()), Integer.toString(caetano.getPJ()), Integer.toString(caetano.getVIT()), Integer.toString(caetano.getE()), Integer.toString(caetano.getDER()), Integer.toString(caetano.getGP()), Integer.toString(caetano.getGC()), Integer.toString(caetano.getSG())},
                  {"20",santa.getNome(), Integer.toString(santa.getPts()), Integer.toString(santa.getPJ()), Integer.toString(santa.getVIT()), Integer.toString(santa.getE()), Integer.toString(santa.getDER()), Integer.toString(santa.getGP()), Integer.toString(santa.getGC()), Integer.toString(santa.getSG())}
                };
     
    JFrame frame = new JFrame("Tabela");
    JTable tabela = new JTable(dados, titulo);
    tabela.setPreferredScrollableViewportSize(new Dimension(1000,320));
    tabela.setFillsViewportHeight(true);
    
    JScrollPane scroll = new JScrollPane(tabela);
    frame.add(scroll);
  
    
    
    JOptionPane.showMessageDialog(frame, scroll);
    System.exit(0);
    
    
}

}

4 Respostas

J

Pelo seu código, independente da escolha do usuário a tabela está sendo criada, populada e inserida no frame. Basicamente seus if estão sendo irrelevantes. Tabelas são sempre chatinhas de mexer, recomendo procurar aqui no fórum um tablemodel do @ViniGodoy. Ajudará-lo bastante.

A

É bem isso mesmo cara,aproveitando,você pode me mostrar como eu coloco uma mensagem depois que mostrar a tabela? queria colocar mostrando quem foi o campeão

J

Bom, você está adicionando um frame dentro de um JOptionPane:

JOptionPane.showMessageDialog(frame, scroll);

isso vai travar a execução do programa e não terá como exibir uma mensagem até que você finalize essa.

O comum é criar um frame e utilizar o seu próprio atributo, frame.setVisible(), para que ele seja exibido, assim o próprio Java se encarrega de gerenciar o processo do frame em paralelo e não trava seu programa.

Outro adendo, dê uma pesquisada sobre herança, vai lhe ajudar a não ficar escrevendo muito código desnecessário.

Aqui vai um pequeno exemplo do seu próprio código de como poderia ser feito:

Classe extra para trabalhar com a tabela mais facilmente:

import javax.swing.table.DefaultTableModel;

// Uma nova classe para o manuseio da sua tabela
public class MeuModelo extends DefaultTableModel {

    public MeuModelo(Object[] titulos) {
        super(titulos, 0);
    }

    // Método personalizado para adicionar o time à tabela
    public void addTime(int posicao, Time time) {
        // Objeto com as propriedas do time
        final Object[] data = {
            posicao, time.getNome(), time.getPts(), time.getPJ(), time.getGP(), time.VIT(),
            time.getE(), time.DER(), time.getGP(), time.getGC(), time.getSG()
        };

        // Adicionar as inf. do time no table model
        addRow(data);
    }
}

Classe principal:

import java.awt.Dimension;
import javax.swing.JFrame;
import javax.swing.JOptionPane;
import javax.swing.JScrollPane;
import javax.swing.JTable;

public class Main {

    public static void main(String[] args) {
        String[] titulo = {"Posição", "Clube", "Pts", "PJ", "VIT", "E", "DER", "GP", "GC", "SC"};

        // Table Model para facilitar o tratamento dos dados
        MeuModelo modelo = new MeuModelo(titulo);
        modelo.addTime(1, new Time("São Paulo", 78, 38, 22, 12, 4, 66, 32, 34));
        modelo.addTime(2, new Time("Internacional", 69, 38, 20, 9, 9, 52, 36, 16));
        modelo.addTime(3, new Time("Grêmio", 67, 38, 20, 7, 11, 64, 45, 19));

        JTable tabela = new JTable(modelo);
        tabela.setPreferredScrollableViewportSize(new Dimension(1000, 320));
        tabela.setFillsViewportHeight(true);

        JScrollPane scroll = new JScrollPane(tabela);

        // Cria um frame sem trava a execução
        JFrame frame = new JFrame("Tabela");
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); // Finaliza o prog. quando clicar em fechar
        frame.add(scroll);
        frame.pack();
        frame.setLocationRelativeTo(null); // Centralizar o frame na tela
        frame.setVisible(true); // Exibe o frame

        JOptionPane.showMessageDialog(frame, "O vencedor foi o fulano!");
    }
}
A

Cara,muito obrigado,me ajudou demais,consegui renovar o meu código.

Criado 22 de junho de 2020
Ultima resposta 23 de jun. de 2020
Respostas 4
Participantes 2