[RESOLVIDO] Segundo construtor não funciona

2 respostas
KarlosKatu

Bom dia galera, eu to criando um programa usando o SWING do NETBEANS e to chamando uns dados pra uma Jlist pelo construtor e eu criei dois construtores por que estou seguindo o padrão do projeto no qual estou trabalhando, não sei se está correto, senão por favor me digam, mas o problema que eu detectei foi o seguinte: antes eu pensava que o problema do JList não ser preenchido com os dados e mostra-los era por causa da configuração no NETBEANS, então resolvi colocar um printf no segundo construtor pra ver se ele estava chamando os metodos que se encontravam nele, e no console não printou nada, mas quando eu coloquei no primeiro construtor ele printou, então acho que o erro está no segundo construtor, mas o que está errado?

package br.ufal.ic.falibras.ihc.cadastroSemantico;

import br.ufal.ic.falibras.common.metamodel.Palavra;
import br.ufal.ic.falibras.grammar.IMorfoSintaticController;
import br.ufal.ic.falibras.grammar.generator.IGrammarGenerator;
import br.ufal.ic.falibras.grammareditor.ErroGrammarEditorException;
import br.ufal.ic.falibras.grammareditor.IGrammarEditor;
import br.ufal.ic.falibras.preprocessor.ITextPreprocessor;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
import javax.swing.JOptionPane;

public class SemanticoPanel extends javax.swing.JPanel{
    
    //CONSTANTES
    final private String separadorIdNomePalavra = "|";
    private List<String> nomesPalavrasFixas;
    
    //AUXILIARES
    private IGrammarEditor contGrammarEditor;
    private IGrammarGenerator contGrammarGenerator;
    private IMorfoSintaticController contAnalisadorMorfoSintatico;
    
    //ATRIBUTOS
    private boolean novoSentido;
    private List<Palavra> palavrasExistentes;
    private Palavra palavraAtual;    
    
    //PRIMEIRO CONSTRUTOR
    public SemanticoPanel() {
        initComponents();
    }
    
    //SEGUNDO CONSTRUTOR
    public SemanticoPanel(IGrammarEditor contGrammarEditor, IGrammarGenerator contGrammarGenerator, IMorfoSintaticController contAnalisadorMorfoSintatico){
        this();
        this.contGrammarEditor = contGrammarEditor;
        this.contGrammarGenerator = contGrammarGenerator;
        this.contAnalisadorMorfoSintatico = contAnalisadorMorfoSintatico;
        this.inicializarPalavrasExistentes("");
        this.novoSentido = true;
    }

    @SuppressWarnings("unchecked")
    // <editor-fold defaultstate="collapsed" desc="Generated Code">                          
    private void initComponents() {

        buttonGroup1 = new javax.swing.ButtonGroup();
        DarSentido = new javax.swing.JToggleButton();
        jToggleButton10 = new javax.swing.JToggleButton();
        jScrollPane1 = new javax.swing.JScrollPane();
        PalavrasCadastradas = new javax.swing.JList();
        jLabel1 = new javax.swing.JLabel();
        jsPalavra = new javax.swing.JTextField();
        jLabel2 = new javax.swing.JLabel();
        jsRadical = new javax.swing.JTextField();
        SentidoPosterior = new javax.swing.JToggleButton();
        jLabel7 = new javax.swing.JLabel();
        jLabel8 = new javax.swing.JLabel();
        Filtro = new javax.swing.JTextField();
        SentidoAnterior = new javax.swing.JToggleButton();
        SentidoDefault = new javax.swing.JToggleButton();
        jPanel1 = new javax.swing.JPanel();
        jScrollPane6 = new javax.swing.JScrollPane();
        jTable1 = new javax.swing.JTable();

        DarSentido.setIcon(new javax.swing.ImageIcon(getClass().getResource("/imgs/OK.png"))); // NOI18N
        DarSentido.setText("Dar Sentido");
        DarSentido.setMaximumSize(new java.awt.Dimension(111, 33));
        DarSentido.setMinimumSize(new java.awt.Dimension(111, 33));
        DarSentido.setPreferredSize(new java.awt.Dimension(111, 33));

        jToggleButton10.setIcon(new javax.swing.ImageIcon(getClass().getResource("/imgs/Cancelar.png"))); // NOI18N
        jToggleButton10.setText("Limpar Campos");
        jToggleButton10.setMaximumSize(new java.awt.Dimension(111, 33));
        jToggleButton10.setMinimumSize(new java.awt.Dimension(111, 33));
        jToggleButton10.setPreferredSize(new java.awt.Dimension(111, 33));

        PalavrasCadastradas.setSelectionMode(javax.swing.ListSelectionModel.SINGLE_SELECTION);
        PalavrasCadastradas.addListSelectionListener(new javax.swing.event.ListSelectionListener() {
            public void valueChanged(javax.swing.event.ListSelectionEvent evt) {
                PalavrasCadastradasValueChanged(evt);
            }
        });
        jScrollPane1.setViewportView(PalavrasCadastradas);

        jLabel1.setText("Palavra:");

        jLabel2.setText("Radical:");

        SentidoPosterior.setIcon(new javax.swing.ImageIcon(getClass().getResource("/imgs/adicionar.png"))); // NOI18N
        SentidoPosterior.setText("Adicionar Significado Posterior");
        SentidoPosterior.setMaximumSize(new java.awt.Dimension(111, 33));
        SentidoPosterior.setMinimumSize(new java.awt.Dimension(111, 33));
        SentidoPosterior.setPreferredSize(new java.awt.Dimension(111, 33));
        SentidoPosterior.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                SentidoPosteriorActionPerformed(evt);
            }
        });

        jLabel7.setText("Palavras Cadastradas:");

        jLabel8.setText("Filtro:");

        SentidoAnterior.setIcon(new javax.swing.ImageIcon(getClass().getResource("/imgs/remover.png"))); // NOI18N
        SentidoAnterior.setText("Adicionar Significado Anterior");
        SentidoAnterior.setMaximumSize(new java.awt.Dimension(111, 33));
        SentidoAnterior.setMinimumSize(new java.awt.Dimension(111, 33));
        SentidoAnterior.setPreferredSize(new java.awt.Dimension(111, 33));
        SentidoAnterior.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                SentidoAnteriorActionPerformed(evt);
            }
        });

        SentidoDefault.setIcon(new javax.swing.ImageIcon(getClass().getResource("/imgs/OK.png"))); // NOI18N
        SentidoDefault.setText("Adicionar Significado Padrão");
        SentidoDefault.setToolTipText("O sentido padrão terá 100% de sentido");
        SentidoDefault.setMaximumSize(new java.awt.Dimension(111, 33));
        SentidoDefault.setMinimumSize(new java.awt.Dimension(111, 33));
        SentidoDefault.setPreferredSize(new java.awt.Dimension(111, 33));
        SentidoDefault.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                SentidoDefaultActionPerformed(evt);
            }
        });

        jPanel1.setBorder(javax.swing.BorderFactory.createTitledBorder("Lista de Palavras e Sentidos"));

        jTable1.setModel(new javax.swing.table.DefaultTableModel(
            new Object [][] {
                {null, null, null, null},
                {null, null, null, null},
                {null, null, null, null},
                {null, null, null, null},
                {null, null, null, null},
                {null, null, null, null},
                {null, null, null, null},
                {null, null, null, null},
                {null, null, null, null},
                {null, null, null, null},
                {null, null, null, null},
                {null, null, null, null},
                {null, null, null, null}
            },
            new String [] {
                "Palavras", "Significados", "Posição", "Porcentagem Acrescentada"
            }
        ));
        jTable1.setOpaque(false);
        jScrollPane6.setViewportView(jTable1);

        javax.swing.GroupLayout jPanel1Layout = new javax.swing.GroupLayout(jPanel1);
        jPanel1.setLayout(jPanel1Layout);
        jPanel1Layout.setHorizontalGroup(
            jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(jPanel1Layout.createSequentialGroup()
                .addContainerGap()
                .addComponent(jScrollPane6, javax.swing.GroupLayout.PREFERRED_SIZE, 647, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
        );
        jPanel1Layout.setVerticalGroup(
            jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(jPanel1Layout.createSequentialGroup()
                .addContainerGap()
                .addComponent(jScrollPane6, javax.swing.GroupLayout.PREFERRED_SIZE, 155, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
        );

        javax.swing.GroupLayout layout = new javax.swing.GroupLayout(this);
        this.setLayout(layout);
        layout.setHorizontalGroup(
            layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(layout.createSequentialGroup()
                .addContainerGap()
                .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                    .addComponent(jLabel7)
                    .addComponent(jPanel1, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                    .addGroup(layout.createSequentialGroup()
                        .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING, false)
                            .addGroup(javax.swing.GroupLayout.Alignment.LEADING, layout.createSequentialGroup()
                                .addComponent(jLabel8)
                                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                                .addComponent(Filtro))
                            .addComponent(jScrollPane1, javax.swing.GroupLayout.PREFERRED_SIZE, 300, javax.swing.GroupLayout.PREFERRED_SIZE))
                        .addGap(18, 18, 18)
                        .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                            .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, layout.createSequentialGroup()
                                .addComponent(jLabel1)
                                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
                                .addComponent(jsPalavra, javax.swing.GroupLayout.PREFERRED_SIZE, 636, javax.swing.GroupLayout.PREFERRED_SIZE))
                            .addGroup(layout.createSequentialGroup()
                                .addComponent(jLabel2)
                                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
                                .addComponent(jsRadical, javax.swing.GroupLayout.PREFERRED_SIZE, 638, javax.swing.GroupLayout.PREFERRED_SIZE))
                            .addGroup(layout.createSequentialGroup()
                                .addComponent(SentidoDefault, javax.swing.GroupLayout.PREFERRED_SIZE, 214, javax.swing.GroupLayout.PREFERRED_SIZE)
                                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                                .addComponent(SentidoAnterior, javax.swing.GroupLayout.PREFERRED_SIZE, 228, javax.swing.GroupLayout.PREFERRED_SIZE)
                                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                                .addComponent(SentidoPosterior, javax.swing.GroupLayout.PREFERRED_SIZE, 232, javax.swing.GroupLayout.PREFERRED_SIZE)))))
                .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
            .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, layout.createSequentialGroup()
                .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                .addComponent(DarSentido, javax.swing.GroupLayout.PREFERRED_SIZE, 173, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addGap(18, 18, 18)
                .addComponent(jToggleButton10, javax.swing.GroupLayout.PREFERRED_SIZE, 173, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addContainerGap())
        );
        layout.setVerticalGroup(
            layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(layout.createSequentialGroup()
                .addContainerGap()
                .addComponent(jLabel7)
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
                .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                    .addGroup(layout.createSequentialGroup()
                        .addComponent(jScrollPane1, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
                        .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                            .addComponent(jLabel8)
                            .addComponent(Filtro, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
                        .addGap(18, 18, 18)
                        .addComponent(jPanel1, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
                    .addGroup(layout.createSequentialGroup()
                        .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                            .addComponent(jLabel1)
                            .addComponent(jsPalavra, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                        .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                            .addComponent(jLabel2)
                            .addComponent(jsRadical, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                        .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                            .addComponent(SentidoAnterior, javax.swing.GroupLayout.PREFERRED_SIZE, 39, javax.swing.GroupLayout.PREFERRED_SIZE)
                            .addComponent(SentidoPosterior, javax.swing.GroupLayout.PREFERRED_SIZE, 39, javax.swing.GroupLayout.PREFERRED_SIZE)
                            .addComponent(SentidoDefault, javax.swing.GroupLayout.PREFERRED_SIZE, 39, javax.swing.GroupLayout.PREFERRED_SIZE))))
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, 13, Short.MAX_VALUE)
                .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                    .addComponent(DarSentido, javax.swing.GroupLayout.PREFERRED_SIZE, 39, javax.swing.GroupLayout.PREFERRED_SIZE)
                    .addComponent(jToggleButton10, javax.swing.GroupLayout.PREFERRED_SIZE, 39, javax.swing.GroupLayout.PREFERRED_SIZE))
                .addContainerGap())
        );
    }// </editor-fold>                        

    private void SentidoDefaultActionPerformed(java.awt.event.ActionEvent evt) {                                               
        new SentidoDefaultPanel().setVisible(true);
    }                                              

    private void SentidoAnteriorActionPerformed(java.awt.event.ActionEvent evt) {                                                
        new SentidoAnteriorPanel().setVisible(true);
    }                                               

    private void SentidoPosteriorActionPerformed(java.awt.event.ActionEvent evt) {                                                 
        new SentidoPosteriorPanel().setVisible(true);
    }                                                

    private void inicializarPalavrasExistentes(String filtro) {
        try {
            this.palavrasExistentes = this.contGrammarEditor.obterTodasPalavras(filtro);
            this.PalavrasCadastradas.setModel(new javax.swing.AbstractListModel() {
                String[] strings = obterDadosPalavras(palavrasExistentes);

                public int getSize() {
                    return strings.length;
                }

                public Object getElementAt(int i) {
                    return strings[i];
                }
            });
        } catch (ErroGrammarEditorException ex) {
            JOptionPane.showMessageDialog(null, "Erro na inicialização da janela!", "Mensagem Informativa", JOptionPane.PLAIN_MESSAGE, new javax.swing.ImageIcon(getClass().getResource("/imgs/processar.png")));
        }
    }    
    
    private String[] obterDadosPalavras(List<Palavra> palavrasExistentes) {
        List<String> dadosPalavras = new ArrayList<String>();
        for (Iterator<Palavra> it = palavrasExistentes.iterator(); it.hasNext();) {
            Palavra palavra = it.next();
            if(palavra.getNome().equals(ITextPreprocessor.flagNumeroPalavra)){
                dadosPalavras.add(Integer.toString(palavra.getId()) + this.separadorIdNomePalavra + palavra.obterSignificadoMaisProvavel(palavra.obterCategoriaMaisProvavel()).getNome());
            }
            else{
                dadosPalavras.add(Integer.toString(palavra.getId()) + this.separadorIdNomePalavra + palavra.getNome());
            }
        }
        String[] out = new String[dadosPalavras.size()];
        for (int i = 0; i < out.length; i++) {
            out[i] = dadosPalavras.get(i);
        }
        return out;
    }

    private void PalavrasCadastradasValueChanged(javax.swing.event.ListSelectionEvent evt) {                                                 
        if(!this.PalavrasCadastradas.isSelectionEmpty()){
            limpaFormulario();
            //HABILITA OS BOTÕES
            this.SentidoDefault.setEnabled(true);
            this.SentidoAnterior.setEnabled(true);
            this.SentidoPosterior.setEnabled(true);
            
            //ALTERA NOME DO BOTÃO
            this.DarSentido.setText("Alterar Sentido");
            this.novoSentido = false;
            
            //OBTER DADOS DA PALAVRA SELECIONADA
            int indicePalavraSelecionada = this.PalavrasCadastradas.getSelectedIndex();
            this.palavraAtual = this.palavrasExistentes.get(indicePalavraSelecionada);
            
            //ATUALIZAR CAMPOS GERAIS
            this.jsPalavra.setText(this.palavraAtual.getNome());
            this.jsRadical.setText(this.palavraAtual.getRadical());
            
            //ATUALIZAR CAMPOS CATEGORIAS DA REGRA
            //List<Significado> SignificadoPalavra = palavraAtual.getSignificados();
               
        }
    }                                                

    // Variables declaration - do not modify                     
    private javax.swing.JToggleButton DarSentido;
    private javax.swing.JTextField Filtro;
    private javax.swing.JList PalavrasCadastradas;
    private javax.swing.JToggleButton SentidoAnterior;
    private javax.swing.JToggleButton SentidoDefault;
    private javax.swing.JToggleButton SentidoPosterior;
    private javax.swing.ButtonGroup buttonGroup1;
    private javax.swing.JLabel jLabel1;
    private javax.swing.JLabel jLabel2;
    private javax.swing.JLabel jLabel7;
    private javax.swing.JLabel jLabel8;
    private javax.swing.JPanel jPanel1;
    private javax.swing.JScrollPane jScrollPane1;
    private javax.swing.JScrollPane jScrollPane6;
    private javax.swing.JTable jTable1;
    private javax.swing.JToggleButton jToggleButton10;
    private javax.swing.JTextField jsPalavra;
    private javax.swing.JTextField jsRadical;
    // End of variables declaration                   

    public void limpaFormulario(){
        this.palavraAtual = null;
        this.SentidoAnterior.setEnabled(false);
        this.SentidoDefault.setEnabled(false);
        this.SentidoPosterior.setEnabled(false);
        this.PalavrasCadastradas.setEnabled(true);
        this.Filtro.setText("");
        this.jsPalavra.setText("");
        this.jsRadical.setText("");
    }
    
}

2 Respostas

KarlosKatu

Galera pode fechar, era porque eu só tava chamando o primeiro método e não o segundo no MAIN, que burro não :stuck_out_tongue:
Obrigado :smiley:

michetti

No caso aqui não fecham os tópicos e sim clocamos(o autor do tópico) [RESOLVIDO] no título

Criado 19 de fevereiro de 2014
Ultima resposta 19 de fev. de 2014
Respostas 2
Participantes 2