Questo sito utilizza cookies solo per scopi di autenticazione sul sito e nient'altro. Nessuna informazione personale viene tracciata. Leggi l'informativa sui cookies.
Username: Password: oppure
Java - Passaggio di variabili fra due jtextfield in due jframe/classi diverse
Forum - Java - Passaggio di variabili fra due jtextfield in due jframe/classi diverse

Avatar
asd991 (Normal User)
Newbie


Messaggi: 1
Iscritto: 09/02/2012

Segnala al moderatore
Postato alle 18:21
Giovedė, 09/02/2012
Salve a tutti!

Ho due classi/Jframe, in entrambe ho una jTextField, tramite la pressione di un pulsante vorrei che fosse possibile visualizzare il testo della prima.

Ho provato istanziando la prima classe normalmente e a fare

ClassA a = new ClassA();
a.jtextfield1.getText();

ma non funziona.
Qualcuno puo' aiutarmi e correggermi, cortesemente, il codice?

Questa č la classe A:

Codice sorgente - presumibilmente Java

  1. public class ClassA extends javax.swing.JFrame {
  2.  
  3. public ClassA() {
  4.     initComponents();
  5. }
  6.  
  7. public void initComponents() {
  8.  
  9.     jTextField1 = new javax.swing.JTextField();
  10.  
  11.     setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);
  12.  
  13.     jTextField1.setText("Some text blah blah");
  14.     jTextField1.addActionListener(new java.awt.event.ActionListener() {
  15.         public void actionPerformed(java.awt.event.ActionEvent evt) {
  16.             jTextField1ActionPerformed(evt);
  17.         }
  18.     });
  19.  
  20.     javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());
  21.     getContentPane().setLayout(layout);
  22.     layout.setHorizontalGroup(
  23.         layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
  24.         .addGroup(layout.createSequentialGroup()
  25.             .addGap(33, 33, 33)
  26.             .addComponent(jTextField1, javax.swing.GroupLayout.PREFERRED_SIZE, 104, javax.swing.GroupLayout.PREFERRED_SIZE)
  27.             .addContainerGap(124, Short.MAX_VALUE))
  28.     );
  29.     layout.setVerticalGroup(
  30.         layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
  31.         .addGroup(layout.createSequentialGroup()
  32.             .addGap(47, 47, 47)
  33.             .addComponent(jTextField1, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
  34.             .addContainerGap(86, Short.MAX_VALUE))
  35.     );
  36.  
  37.     pack();
  38. }
  39.  
  40. public static void main(String args[]) {
  41.  
  42.     java.awt.EventQueue.invokeLater(new Runnable() {
  43.  
  44.         public void run() {
  45.             new ClassA().setVisible(true);
  46.         }
  47.     });
  48. }
  49.  
  50. public javax.swing.JTextField jTextField1;
  51. }



Questa, invece, la Classe B (di cui voglio mostrare il testo della textfieldA).

Codice sorgente - presumibilmente Java

  1. public class ClassB extends javax.swing.JFrame {
  2.  
  3. public ClassB() {
  4.     initComponents();
  5. }
  6.  
  7.   public  ClassA a = new ClassA();
  8.  
  9.  
  10. public void initComponents() {
  11.  
  12.     jTextField1 = new javax.swing.JTextField();
  13.     getText = new javax.swing.JButton();
  14.  
  15.     setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);
  16.  
  17.     getText.setText("GetText");
  18.     getText.addActionListener(new java.awt.event.ActionListener() {
  19.         public void actionPerformed(java.awt.event.ActionEvent evt) {
  20.             getTextActionPerformed(evt);
  21.         }
  22.     });
  23.  
  24.     javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());
  25.     getContentPane().setLayout(layout);
  26.     layout.setHorizontalGroup(
  27.         layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
  28.         .addGroup(layout.createSequentialGroup()
  29.             .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
  30.                 .addGroup(layout.createSequentialGroup()
  31.                     .addGap(31, 31, 31)
  32.                     .addComponent(jTextField1, javax.swing.GroupLayout.PREFERRED_SIZE, 114, javax.swing.GroupLayout.PREFERRED_SIZE))
  33.                 .addGroup(layout.createSequentialGroup()
  34.                     .addGap(50, 50, 50)
  35.                     .addComponent(getText)))
  36.             .addContainerGap(143, Short.MAX_VALUE))
  37.     );
  38.     layout.setVerticalGroup(
  39.         layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
  40.         .addGroup(layout.createSequentialGroup()
  41.             .addGap(50, 50, 50)
  42.             .addComponent(jTextField1, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
  43.             .addGap(26, 26, 26)
  44.             .addComponent(getText)
  45.             .addContainerGap(49, Short.MAX_VALUE))
  46.     );
  47.  
  48.     pack();
  49. }
  50.  
  51. public void getTextActionPerformed(java.awt.event.ActionEvent evt) {
  52.     a.setVisible(true);
  53.     a.jTextField1.getText(); //ho provato a fare questo, ma non funziona
  54. }
  55.  
  56. public static void main(String args[]) {
  57.  
  58.     java.awt.EventQueue.invokeLater(new Runnable() {
  59.  
  60.         public void run() {
  61.             new ClassB().setVisible(true);
  62.         }
  63.     });
  64. }
  65.  
  66. public javax.swing.JButton getText;
  67. public javax.swing.JTextField jTextField1;
  68. }



Grazie mille in anticipo :)

PM
Avatar
Bonny (Member)
Expert


Messaggi: 437
Iscritto: 24/04/2009

Up
0
Down
V
Segnala al moderatore
Postato alle 21:42
Giovedė, 09/02/2012
ovvio che non funziona il metodo getText() ritorna un tipo di dato stringa che in questo caso č il contenuto della JTextFieldA
devi fare:
Codice sorgente - presumibilmente Java

  1. public void getTextActionPerformed(java.awt.event.ActionEvent evt) {
  2.     a.setVisible(true);
  3.     jtextfield1.setText(a.jTextField1.getText()); //ho provato a fare questo, ma non funziona
  4. }


ovvero prendo il contenuto della jTextField1 che sta nella classe A e lo inserisco nella jTextField1 che sta in B

P.S. se mi permetti ti do un consiglio: compra un manuale di java qualsiasi esso sia lo studi per qualche giorno facendo tutti gli esercizi di esempio classici di un manuale č inutile far scrivere il codice a NetBeans(usando Drag&drop) senza sapere di che codice si tratti (o di che classi fa uso).  

PM