Resgatar valores de outra classe

5 respostas
rick_gallagher

Bom dia pessoal,

Vejam se vocês conseguem visualizar uma solução, eu estou trabalhando basicamente com duas interfaces no meu programa sendo:

GUI Principal: onde eu chamo a outra GUI que se chama “Selecionar Torneio” através de um botão, nessa GUI além do botão eu tenho 2 JTextfields que são Torneio principal e Status (Textfields não editaveis, apenas devem receber os valores que vão ser definidos na GUI SelecionarTorneio).

GUI SelecionarTorneio: onde eu seleciono o torneio principal dentro de uma consulta, guardando somente o nome do torneio e o seu status para que esses dois atributos possam ser setados na minha GUI principal

Então guardei os valores de Nome do “torneio” e “Status” em variáveis do tipo String

O problema pessoal, é que eu não estou conseguindo usar esses dois atributos na minha GUI Principal nos respectivos Textfiels então, como eu faço pra pegar esses valores guardados de outra classe e fazer com que esses valores possam ser usados dentro da minha Classe principal?

vai um trecho do código da GUI SelecionarTOrneio do evento do mouse quando eu seleciono o torneio correspondente e clico em abrirTorneio:

private void abrirTorneioMousePressed(java.awt.event.MouseEvent evt) {                                          

       String torPrincipal = torneio.getText();
       s= (String) status.getSelectedItem();
       JOptionPane.showMessageDialog(this,"Torneio definido como principal!","Aviso!",JOptionPane.INFORMATION_MESSAGE);
       this.setVisible(false);
    }

Agradeço a quem puder ajudar!

5 Respostas

Robsonramosabrao

na classe torneio Principal crie os seguintes metodos

public String getTorneio() {                                             
   torPrincipal = torneio.getText();
   return torPrincipal;
}

public String getStatus(){
   s = (String) status.getSelectedItem();   
   return s;
}

E na classe Principal, faça o seguinte

//declaração de um objeto SelecionarTorneio
SelecionarTorneio st
JTextField torneio;
JTextField status;
//construtor
public Principal(){
st = new SelecionarTorneio();
torneio = new JTextField(""+st. getTorneio());
status = new JTextField(""+sr.getgetStatus());
}

ok…

rick_gallagher

Não esta dando certo ainda… Ele esta retornando pra classe principal apenas o valor default de status que é “criado” no JComboBox da classe SelecionarTorneio e o outro Textfield de torneio ele nem preenche, por algum motivo ele não salva os atributos da minha consulta e não mostra na minha classe principal …

Fiz exatamente assim Robsonramosabrao só que com algumas modificações…

Classe: SelecionarTorneio

public String getTorneio(){                                             
        torPrincipal = torneio.getText();
        return torPrincipal;
    }

    public String getStatus(){
        s = (String) status.getSelectedItem();
        return s;
    }

Classe: Principal

//contrutor
 public Principal() {
        initComponents();  
        tor.setEditable(false);
        status.setEditable(false);
        //declaração de um objeto SelecionarTorneio
        SelecionarTorneios st = new SelecionarTorneios(); 
        tor.setText(st.getTorneio());
        status.setText(st.getStatus());
    .
    .
}
Robsonramosabrao

posta tua classe principal pra eu dar uma olhada…

rick_gallagher

Certo Robsonramosabrao, vou postar a Principal e mais a SelecionarTorneio de modo que fique facil a visualização do problema.

PS: Botões e outros componentes da interface eu retirei e deixei apenas os relevantes para o qual estão sendo trabalhados.

Classe Principal:

O "AbrirTorneioMousePressed();" é o método ao clicar no botão "AbrirTorneio" da interface , ele que teria que setar e guardar os valores respectivos para serem retornados na classe principal, creio que algo deve ser feito nesse método... Só esta exibindo mensagem de confirmação.

package swiss.view;

import swiss.relatorio.Relatorios;
import swiss.view.SelecionarTorneios;

public class Principal extends Formulario {
    
    public Principal() {
        initComponents();  
        tor.setEditable(false);
        status.setEditable(false);
        //declaração de um objeto SelecionarTorneio
        SelecionarTorneios st = new SelecionarTorneios(); 
        tor.setText(st.getTorneio());
        status.setText(st.getStatus());    
           
    }

  private void SelecionarTorneioMousePressed(java.awt.event.MouseEvent evt) {                                               
// TODO adicione seu código de manipulação aqui:
        SelecionarTorneios seltor = new SelecionarTorneios();
         seltor.setVisible(true);
    }                                 

 public static void main(String args[]) {
        java.awt.EventQueue.invokeLater(new Runnable() {
            public void run() {
                new Principal().setVisible(true);
            }
        });
    }

private javax.swing.JButton SelecionarTorneio;
private javax.swing.JTextField status;
private javax.swing.JTextField tor;
}

Classe: SelecionarTorneios

package swiss.view;

import javax.swing.JOptionPane;
import javax.swing.ListSelectionModel;
import swiss.dao.TorneioDao;
import swiss.servicos.ConversordeDatas;
import swiss.servicos.Facade;

public class SelecionarTorneios extends Formulario {
        
    Formulario form = new Formulario();
    ConversordeDatas conversorDatas = new ConversordeDatas();
    TorneioDao dao = new TorneioDao();
    
    public SelecionarTorneios() {
        initComponents();
         form.defineForm(this,700,360);
         
         table.setModel(new javax.swing.table.DefaultTableModel(
            new Object [][] { },
            new String [] {
                 "Nome", "Data", "Arbitro", "Status"
            }
        ){});   
       table.getColumnModel().getColumn(0).setPreferredWidth(210);
       table.getColumnModel().getColumn(0).setResizable(false);
       table.getColumnModel().getColumn(1).setPreferredWidth(110);
       table.getColumnModel().getColumn(1).setResizable(false);         
       table.getColumnModel().getColumn(2).setPreferredWidth(190);
       table.getColumnModel().getColumn(2).setResizable(false);         
       table.getColumnModel().getColumn(3).setPreferredWidth(160);
       table.getColumnModel().getColumn(3).setResizable(false);     
       
       table.getTableHeader().setReorderingAllowed(false);
       table.setAutoResizeMode(javax.swing.JTable.AUTO_RESIZE_OFF);

       scrollTable.setViewportView(table);    
       
       //define uma unica seleção pelo mouse 
       table.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
       //setados como default na inicialização
       resp=JOptionPane.showConfirmDialog(this, "Deseja Consultar pelo nome do torneio ao invés de buscar pela data?", "Aviso!", JOptionPane.YES_NO_OPTION, JOptionPane.INFORMATION_MESSAGE);
       
       if(resp==0){
           datainicial.setEnabled(false);
           datafinal.setEnabled(false);
       }else{
           torneio.setEnabled(false);
           torneio.setEditable(false);
       }
       //Limpa JTable e JTextFields
            datainicial.setDate(null);
            datafinal.setDate(null);

private void abrirTorneioMousePressed(java.awt.event.MouseEvent evt) {                                          

       JOptionPane.showMessageDialog(this,"Torneio definido como principal!","Aviso!",JOptionPane.INFORMATION_MESSAGE);
       this.setVisible(false);

    }                        
 
public String getTorneio(){                                             
        torPrincipal = torneio.getText();
        return torPrincipal;
    }

    public String getStatus(){
        s = (String) status.getSelectedItem();
        return s;
    }


private void pesquisarMousePressed(java.awt.event.MouseEvent evt) {                                       
// TODO adicione seu código de manipulação aqui:
         
        try{
          
             javax.swing.table.DefaultTableModel dtm = (javax.swing.table.DefaultTableModel)table.getModel();
             int linhas = table.getRowCount();   
             if(linhas > 0){          
                  for(int i = linhas-1; i >= 0; --i){
                   dtm.removeRow(i);   
                   
                }
             }
           //Converter o valor o JComboBox para String
           s= (String) status.getSelectedItem();
           System.out.println("valor do status: "+s);
           
             if(resp==1){
                //Retorna ResultSet da DAO
                result = facade.getInstance().consultarTorneioData(s.toString(), conversorDatas.converterDataIso(datainicial), conversorDatas.converterDataIso(datafinal));
             }else{
                //Retorna ResultSet da DAO
                 result = facade.getInstance().consultarTorneioNome(torneio.getText(),s.toString());
             }
       
            while(result.next()){ 
                 dtm.addRow(new Object[]{result.getString("TOR_nome"),result.getString("TOR_data_inicial"),result.getString("TOR_arbitro"),result.getString("TOR_Status") });
            };
            
           
             if(torneio.isEnabled()){
                if(this.torneio.getText().equals("")){
                     dtm.setRowCount(0);
                    JOptionPane.showMessageDialog(this,"Informe o nome do Torneio");
                    }else if (table.getRowCount()==0 && ! torneio.getText().equals("")){
             JOptionPane.showMessageDialog(this,"Nenhum resultado foi encontrado","Aviso!",JOptionPane.INFORMATION_MESSAGE);
                }
            }
            
            if(datainicial.isEnabled() && datafinal.isEnabled()){
            if(this.datainicial.getCalendar()== null){
                    JOptionPane.showMessageDialog(this,"Informe a Data Inicial");
                    dtm.setRowCount(0);
                    datainicial.setDate(null);
                    }
          
             else  if(this.datafinal.getCalendar() == null){ 
                        JOptionPane.showMessageDialog(this,"Informe a Data Final");
                        dtm.setRowCount(0);
                        datafinal.setDate(null);
                        }
             else if (table.getRowCount()==0){
             JOptionPane.showMessageDialog(this,"Nenhum resultado foi encontrado","Aviso!",JOptionPane.INFORMATION_MESSAGE);
                }
            }
             
            
        }catch(Exception e){
            JOptionPane.showMessageDialog(this,e); 
            
        }
    }                                      
    
    
    /**
     * @param args the command line arguments
     */
    public static void main(String args[]) {
        
        java.awt.EventQueue.invokeLater(new Runnable() {
            public void run() {
                new SelecionarTorneios().setVisible(true);
            }
        });
    }
    
    // Declaração de variáveis - não modifique                     
    private javax.swing.JButton abrirTorneio;
    private com.toedter.calendar.JDateChooser datafinal;
    private com.toedter.calendar.JDateChooser datainicial;
    private javax.swing.JLabel jLabel1;
    private javax.swing.JLabel jLabel2;
    private javax.swing.JLabel jLabel3;
    private javax.swing.JLabel jLabel4;
    private javax.swing.JPanel jPanel1;
    private javax.swing.JPanel jPanel2;
    private javax.swing.JButton pesquisar;
    private javax.swing.JButton sair;
    private javax.swing.JScrollPane scrollTable;
    private javax.swing.JComboBox status;
    private javax.swing.JTable table;
    private javax.swing.JTextField torneio;
    // Fim da declaração de variáveis                   
    private java.sql.ResultSet result;
    private int resp=0;
    Facade facade;
    public String s;
    public String torPrincipal;
    
     
}
rick_gallagher

Alguem da uma luz? :frowning:

Criado 4 de dezembro de 2007
Ultima resposta 5 de dez. de 2007
Respostas 5
Participantes 2