Acessar dados entre JDialogs
Olá pessoal.
Estou tentando implementar o seguinte:
- No LoginDialog, eu tenho um btOKActionPerformed que executa o método validador (login/password).
Se isValid() --> RecebeDialog.setVisible(true).
O que eu quero é mostrar o nome do login validado em um loginLabel localizado em RecebeDialog.
Alguém sabe como fazer ?
(check line 28 to 33)
Aqui, a classe RecebeDialog:
(ckeck line 8 and 12 to 17)
Agradeço.
Estou tentando implementar o seguinte:
- No LoginDialog, eu tenho um btOKActionPerformed que executa o método validador (login/password).
Se isValid() --> RecebeDialog.setVisible(true).
O que eu quero é mostrar o nome do login validado em um loginLabel localizado em RecebeDialog.
Alguém sabe como fazer ?
(check line 28 to 33)
package paramdialogs; import javax.swing.JOptionPane; /** * @author F6750699 */ public class LoginDialog extends javax.swing.JDialog { public String str = null; public LoginDialog(java.awt.Frame parent, boolean modal) { super(parent, modal); initComponents(); getRootPane().setDefaultButton(btOK); } private void btOKActionPerformed(java.awt.event.ActionEvent evt) { if (!(txtSenha.getText()).equals("123")) { // a simple validation, just to test JOptionPane.showMessageDialog(this, "Wrong password !"); return; } RecebeDialog rd = new RecebeDialog(null, true); rd.setVisible(true); getLogin(); } // this is the method wich isn't working as I wish public String getLogin() { str = txtLogin.getText(); System.out.print("LoginDialog: " + str + "\n"); // just to check it out return str; } // <editor-fold defaultstate="collapsed" desc="Generated Code"> private void initComponents() { jPanel1 = new javax.swing.JPanel(); txtLogin = new javax.swing.JTextField(); btOK = new javax.swing.JButton(); txtSenha = new javax.swing.JTextField(); jLabel1 = new javax.swing.JLabel(); jLabel2 = new javax.swing.JLabel(); setDefaultCloseOperation(javax.swing.WindowConstants.DISPOSE_ON_CLOSE); setTitle("Enter data"); setBackground(new java.awt.Color(204, 255, 255)); jPanel1.setBackground(new java.awt.Color(204, 204, 255)); jPanel1.setBorder(javax.swing.BorderFactory.createBevelBorder(javax.swing.border.BevelBorder.RAISED)); txtLogin.setToolTipText("Type 123 to validate..."); btOK.setText("OK"); btOK.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { btOKActionPerformed(evt); } }); txtSenha.setToolTipText("Type 123 to validate..."); jLabel1.setText("Login:"); jLabel2.setText("Password"); 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() .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addComponent(btOK, javax.swing.GroupLayout.Alignment.TRAILING) .addGroup(jPanel1Layout.createSequentialGroup() .addComponent(jLabel1) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addComponent(txtLogin, javax.swing.GroupLayout.DEFAULT_SIZE, 152, Short.MAX_VALUE)) .addGroup(jPanel1Layout.createSequentialGroup() .addComponent(jLabel2) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addComponent(txtSenha, javax.swing.GroupLayout.PREFERRED_SIZE, 151, javax.swing.GroupLayout.PREFERRED_SIZE))) .addContainerGap()) ); jPanel1Layout.linkSize(javax.swing.SwingConstants.HORIZONTAL, new java.awt.Component[] {txtLogin, txtSenha}); jPanel1Layout.linkSize(javax.swing.SwingConstants.HORIZONTAL, new java.awt.Component[] {jLabel1, jLabel2}); jPanel1Layout.setVerticalGroup( jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, jPanel1Layout.createSequentialGroup() .addContainerGap() .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) .addComponent(jLabel1) .addComponent(txtLogin, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) .addComponent(jLabel2) .addComponent(txtSenha, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, 27, Short.MAX_VALUE) .addComponent(btOK) .addContainerGap()) ); jPanel1Layout.linkSize(javax.swing.SwingConstants.VERTICAL, new java.awt.Component[] {txtLogin, txtSenha}); jPanel1Layout.linkSize(javax.swing.SwingConstants.VERTICAL, new java.awt.Component[] {jLabel1, jLabel2}); javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane()); getContentPane().setLayout(layout); layout.setHorizontalGroup( layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(layout.createSequentialGroup() .addContainerGap() .addComponent(jPanel1, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) .addContainerGap(19, Short.MAX_VALUE)) ); layout.setVerticalGroup( layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(layout.createSequentialGroup() .addContainerGap() .addComponent(jPanel1, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) .addContainerGap(20, Short.MAX_VALUE)) ); java.awt.Dimension screenSize = java.awt.Toolkit.getDefaultToolkit().getScreenSize(); setBounds((screenSize.width-271)/2, (screenSize.height-189)/2, 271, 189); }// </editor-fold> public static void main(String args[]) { java.awt.EventQueue.invokeLater(new Runnable() { public void run() { LoginDialog dialog = new LoginDialog(new javax.swing.JFrame(), true); dialog.addWindowListener(new java.awt.event.WindowAdapter() { public void windowClosing(java.awt.event.WindowEvent e) { System.exit(0); } }); dialog.setVisible(true); } }); } // Variables declaration - do not modify private javax.swing.JButton btOK; private javax.swing.JLabel jLabel1; private javax.swing.JLabel jLabel2; private javax.swing.JPanel jPanel1; private javax.swing.JTextField txtLogin; private javax.swing.JTextField txtSenha; // End of variables declaration }
Aqui, a classe RecebeDialog:
(ckeck line 8 and 12 to 17)
package paramdialogs; public class RecebeDialog extends javax.swing.JDialog { public RecebeDialog(java.awt.Frame parent, boolean modal) { super(parent, modal); initComponents(); pegaLogin(); // this is a call to the 'not-working-as-I-wish' method getRootPane().setDefaultButton(btVoltar); } public final void pegaLogin() { LoginDialog ld = new LoginDialog(null, true); String x = ld.getLogin(); loginLabel.setText(x); System.out.print("RecebeDialog: " + x + "\n"); } // <editor-fold defaultstate="collapsed" desc="Generated Code"> private void initComponents() { jPanel1 = new javax.swing.JPanel(); jLabel1 = new javax.swing.JLabel(); btVoltar = new javax.swing.JButton(); loginLabel = new javax.swing.JLabel(); setDefaultCloseOperation(javax.swing.WindowConstants.DISPOSE_ON_CLOSE); setTitle("Result"); setBackground(new java.awt.Color(204, 255, 204)); jPanel1.setBackground(new java.awt.Color(255, 255, 204)); jPanel1.setBorder(javax.swing.BorderFactory.createEtchedBorder()); jLabel1.setText("Typed Login:"); btVoltar.setText("Voltar"); btVoltar.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { btVoltarActionPerformed(evt); } }); loginLabel.setText(" "); 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() .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(jPanel1Layout.createSequentialGroup() .addComponent(jLabel1) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addComponent(loginLabel, javax.swing.GroupLayout.DEFAULT_SIZE, 152, Short.MAX_VALUE)) .addComponent(btVoltar, javax.swing.GroupLayout.Alignment.TRAILING)) .addContainerGap()) ); jPanel1Layout.setVerticalGroup( jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(jPanel1Layout.createSequentialGroup() .addContainerGap() .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) .addComponent(jLabel1) .addComponent(loginLabel)) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, 21, Short.MAX_VALUE) .addComponent(btVoltar) .addContainerGap()) ); javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane()); getContentPane().setLayout(layout); layout.setHorizontalGroup( layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(layout.createSequentialGroup() .addContainerGap() .addComponent(jPanel1, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) .addContainerGap(35, Short.MAX_VALUE)) ); layout.setVerticalGroup( layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(layout.createSequentialGroup() .addContainerGap() .addComponent(jPanel1, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) .addContainerGap(23, Short.MAX_VALUE)) ); java.awt.Dimension screenSize = java.awt.Toolkit.getDefaultToolkit().getScreenSize(); setBounds((screenSize.width-305)/2, (screenSize.height-154)/2, 305, 154); }// </editor-fold> private void btVoltarActionPerformed(java.awt.event.ActionEvent evt) { setVisible(false); } // Variables declaration - do not modify private javax.swing.JButton btVoltar; private javax.swing.JLabel jLabel1; private javax.swing.JPanel jPanel1; private javax.swing.JLabel loginLabel; // End of variables declaration }
Jmarcel
Curtidas 0
Respostas
Anthony Accioly
28/04/2011
JMarcel,
Você poderia passar o login para o construtor da RecebeDialog:
Daí no método que exibe da outra janela:
Abraços,
Você poderia passar o login para o construtor da RecebeDialog:
private String login;
public RecebeDialog(java.awt.Frame parent, boolean modal, String login) { super(parent, modal); initComponents(); // depois você junta com initComponents() ou seu outro método this.login = login; loginLabel.setText(login); getRootPane().setDefaultButton(btVoltar); } Daí no método que exibe da outra janela:
private void btOKActionPerformed(java.awt.event.ActionEvent evt) { if (!(txtSenha.getText()).equals("123")) { // a simple validation, just to test JOptionPane.showMessageDialog(this, "Wrong password !"); return; } RecebeDialog rd = new RecebeDialog(null, true, txtSenha.getText()); rd.setVisible(true); getLogin(); }Abraços,
GOSTEI 0
Dyego Carmo
28/04/2011
Passe uma dialog como parametro do contrutor da outra , assim voce tem o acesso completo aos recursos :)
Qualquer coisa avise :)
Qualquer coisa avise :)
GOSTEI 0
Anthony Accioly
28/04/2011
Resolvido?
Se sim, por favor atualize o status da chamada.
Se sim, por favor atualize o status da chamada.
GOSTEI 0
Dyego Carmo
28/04/2011
Resolvido ?
Se sim , poderia fechar ?
Valeu !
GOSTEI 0
Jmarcel
28/04/2011
Já está tudo resolvido.
Desculpem pela demora por fechar o post.
Obrigado.
Desculpem pela demora por fechar o post.
Obrigado.
GOSTEI 0