1. Este site usa cookies. Ao continuar a usar este site está a concordar com o nosso uso de cookies. Saber Mais.

Java [Swing]

Discussão em 'Programação' iniciada por theghost, 20 de Novembro de 2008. (Respostas: 10; Visualizações: 1341)

  1. theghost

    theghost Power Member

    Boas estou com uns problemas em java e gostava de saber se isto tem solução, já andei à procura mas não encontro nada :S

    Tenho um Jframe (main) que abre um Jdialog (para login), o que eu preciso é escrever algo no Jframe inicial a partir do Jdialog.

    O Jframe está sempre vísivel, e o jdialog so la escreve se o login for valido (isto ja esta tudo implementado), mas nao arranjo maneira de escrever num jframe que ja esta aberto.

    Espero que isto não pareça muito confuso e tenha solução, já estou farto de procurar uma solução para isto....
     
    Última edição: 20 de Novembro de 2008
  2. mokojin

    mokojin Power Member

    Isso não deverá ser problema, o que acontece é que provavelmente teras que redesenhar os componentes que alteraste. Faz debug a esses campos para verificar se os valores estao realmente a ser la escritos.
     
  3. mcog_blaster

    mcog_blaster Power Member

    Podes meter o codigo aqui ?
    Nao é complicado, mas se tivesses um exmplo pequeno, ajudava.
     
  4. theghost

    theghost Power Member

    boas, nao sei ao certo que parte do codigo queres, isto está feito no netbeans e ele gera grande parte do código, ponho o codigo completo do jframe e do jdialog ?

    edit: outra solução para o meu problema era conseguir fazer hide ao jframe a partir do jdialog e depois criar um novo jframe com as coisas que eu quero que ele mostre.
     
    Última edição: 20 de Novembro de 2008
  5. mcog_blaster

    mcog_blaster Power Member

    Ok..um pequeno exemplo, para ver se dá para perceber.

    Janela principal.
    Código:
    public class MyJFrame extends javax.swing.JFrame {
        
        /**
         * Creates new form MyJFrame
         */
        public MyJFrame() {
            initComponents();
        }
        
        public void setData(String data)
        {
            this.jLabel1.setText(data);
        }
        /** This method is called from within the constructor to
         * initialize the form.
         * WARNING: Do NOT modify this code. The content of this method is
         * always regenerated by the Form Editor.
         */
        .....                    
    
        private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {                                         
            new MyDialog(this, true).setVisible(true);
        }                                        
        
        /**
         * @param args the command line arguments
         */
        public static void main(String args[]) {
            java.awt.EventQueue.invokeLater(new Runnable() {
                public void run() {
                    new MyJFrame().setVisible(true);
                }
            });
        }
        
        // Variables declaration - do not modify                     
        private javax.swing.JButton jButton1;
        private javax.swing.JLabel jLabel1;
        // End of variables declaration                   
        
    }
    Dialog:
    Código:
    public class MyDialog extends javax.swing.JDialog {
        
        private MyJFrame parent;
        /**
         * Creates new form MyDialog
         */
        public MyDialog(java.awt.Frame parent, boolean modal) {
            super(parent, modal);
            initComponents();
            this.parent = (MyJFrame)parent;
      
        }
        
        /** This method is called from within the constructor to
         * initialize the form.
         * WARNING: Do NOT modify this code. The content of this method is
         * always regenerated by the Form Editor.
         */
        ......                     
    
        private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {                                         
            parent.setData(this.jTextArea1.getText());
        }                                        
        
        /**
         * @param args the command line arguments
         */
       /* public static void main(String args[]) {
            java.awt.EventQueue.invokeLater(new Runnable() {
                public void run() {
                    new MyDialog(new javax.swing.JFrame(), true).setVisible(true);
                }
            });
        }*/
        
        // Variables declaration - do not modify                     
        private javax.swing.JButton jButton1;
        private javax.swing.JLabel jLabel1;
        private javax.swing.JScrollPane jScrollPane1;
        private javax.swing.JTextArea jTextArea1;
        // End of variables declaration                   
        
    }
     
  6. theghost

    theghost Power Member

    parent.setData(this.jTextArea1.getText());

    omfg, é so isto ? e eu a bater com a cabeça na parede, vou experimentar, muchas gracias :x2:

    funciona as mil maravilhas xD
     
    Última edição: 21 de Novembro de 2008
  7. mcog_blaster

    mcog_blaster Power Member

    o setData é um metodo que terás de definir, mas ok, parece que já tens o probelma solucionado.
     
  8. theghost

    theghost Power Member


    sim eu percebi ;)
     
  9. Machacaz

    Machacaz Power Member

    Estou com um problema parecido. Só que precisava de fazer o input para um jdialog de 3 inputs e não de apenas um...
    estou Às voltas com isto e não percebo como fazer... alguma ajuda?
    Tenho um JFrame principal... e queria abrir um a dialog com inputs de campos, user, pass e key.
    com um só campo é automático mas com mais do que isso... estou a anhar com isto.
    já tentei com isto:

    panel pn = new panel();
    pn.setVisible(true);

    este panel é um jpanel form...

    se fizer algo mas com uma jframe, a minha frame principal desapere, o que não me dá muito jeito...
    Estou a usar o netbeans.
     
  10. Mike42

    Mike42 Power Member

    Isso não deveria ser problema... tás a fazer alguma coisa mal
     
  11. Machacaz

    Machacaz Power Member

    Entretanto resolvi:
    si.setDefaultCloseOperation(HIDE_ON_CLOSE);

    Só mais uma coisa... preciso de passar valores desta JFrame secundária para a Frame principal...

    Isto dentro da JFrame secundária:
    Código:
     String ip = ipBox.getText();
        String port = portBox.getText();
        
       clientClass.receiveIP(ip);
       clientClass.receivePort(port);
    
        this.dispose();
    clientClass é uma classe intermédia que iria receber os valores.

    Depois no no JFrame principal...
    não estou a conseguir chamar os valores que eu queria da JFrame secundária, a partir desta clientClass
     

Partilhar esta Página