6 Replies - 4180 Views - Last Post: 14 August 2012 - 12:29 PM Rate Topic: -----

#1 RCharles  Icon User is offline

  • New D.I.C Head

Reputation: -1
  • View blog
  • Posts: 27
  • Joined: 12-August 12

How to call a variable from JFrame to another java class?

Posted 14 August 2012 - 07:31 AM

How can you use the variable from your JFrameForm to another class?

let's say that the jtexfield from my JFrameForm has a variable name inputsjTextField

In my class (from another package) i want to use that variable so that i can do like:
inputsjTextField.getText();

InterfaceJFrame:
package guiinterface;


public class InterfaceJFrame extends javax.swing.JFrame {

    /**
     * Creates new form InterfaceJFrame
     */
    public InterfaceJFrame() {
        initComponents();
    }

    /**
     * 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.
     */
    @SuppressWarnings("unchecked")
    // <editor-fold defaultstate="collapsed" desc="Generated Code">                          
    private void initComponents() {

        jLabel1 = new javax.swing.JLabel();
        inputsjTextField = new javax.swing.JTextField();
        unsortedjTextField = new javax.swing.JTextField();
        jLabel2 = new javax.swing.JLabel();
        jLabel3 = new javax.swing.JLabel();
        sortedjTextField = new javax.swing.JTextField();
        algojComboBox = new javax.swing.JComboBox();
        jLabel4 = new javax.swing.JLabel();
        executejButton = new javax.swing.JButton();
        jMenuBar1 = new javax.swing.JMenuBar();
        jMenu1 = new javax.swing.JMenu();
        jMenuItem1 = new javax.swing.JMenuItem();
        jMenuItem2 = new javax.swing.JMenuItem();

        setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);

        jLabel1.setText("Enter numbers to be sorted: ");

        inputsjTextField.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                inputsjTextFieldActionPerformed(evt);
            }
        });

        jLabel2.setText("Unsorted:");

        jLabel3.setText("Sorted:");

        algojComboBox.setModel(new javax.swing.DefaultComboBoxModel(new String[] { "Bubble Sort", "Selection Sort", "Insertion Sort", "Counting Sort", "Heap Sort", "Radix Sort", "Quicksort", "Mergesort" }));

        jLabel4.setText("Sorting Algorithm:");

        executejButton.setText("Execute");
        executejButton.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                executejButtonActionPerformed(evt);
            }
        });

        jMenu1.setText("File");

        jMenuItem1.setText("New");
        jMenu1.add(jMenuItem1);

        jMenuItem2.setText("Exit");
        jMenu1.add(jMenuItem2);

        jMenuBar1.add(jMenu1);

        setJMenuBar(jMenuBar1);

        javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());
        getContentPane().setLayout(layout);
        layout.setHorizontalGroup(
            layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(layout.createSequentialGroup()
                .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                    .addGroup(layout.createSequentialGroup()
                        .addGap(160, 160, 160)
                        .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING)
                            .addComponent(jLabel4)
                            .addGroup(layout.createSequentialGroup()
                                .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING)
                                    .addComponent(jLabel3)
                                    .addComponent(jLabel2))
                                .addGap(18, 18, 18)
                                .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                                    .addComponent(unsortedjTextField, javax.swing.GroupLayout.PREFERRED_SIZE, 258, javax.swing.GroupLayout.PREFERRED_SIZE)
                                    .addComponent(sortedjTextField, javax.swing.GroupLayout.PREFERRED_SIZE, 258, javax.swing.GroupLayout.PREFERRED_SIZE))
                                .addGap(45, 45, 45)))
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                        .addComponent(algojComboBox, javax.swing.GroupLayout.PREFERRED_SIZE, 119, javax.swing.GroupLayout.PREFERRED_SIZE))
                    .addGroup(layout.createSequentialGroup()
                        .addContainerGap()
                        .addComponent(jLabel1)
                        .addGap(3, 3, 3)
                        .addComponent(inputsjTextField, javax.swing.GroupLayout.PREFERRED_SIZE, 258, javax.swing.GroupLayout.PREFERRED_SIZE)))
                .addContainerGap(25, Short.MAX_VALUE))
            .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, layout.createSequentialGroup()
                .addGap(0, 0, Short.MAX_VALUE)
                .addComponent(executejButton)
                .addGap(277, 277, 277))
        );
        layout.setVerticalGroup(
            layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(layout.createSequentialGroup()
                .addGap(31, 31, 31)
                .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                    .addComponent(jLabel1)
                    .addComponent(inputsjTextField, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                    .addComponent(algojComboBox, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                    .addComponent(jLabel4))
                .addGap(49, 49, 49)
                .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                    .addComponent(jLabel2)
                    .addComponent(unsortedjTextField, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
                .addGap(29, 29, 29)
                .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING)
                    .addComponent(jLabel3)
                    .addComponent(sortedjTextField, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, 52, Short.MAX_VALUE)
                .addComponent(executejButton)
                .addGap(35, 35, 35))
        );

        pack();
    }// </editor-fold>                        

    private void inputsjTextFieldActionPerformed(java.awt.event.ActionEvent evt) {                                                 
        // TODO add your handling code here:
        
    }                                                

    private void executejButtonActionPerformed(java.awt.event.ActionEvent evt) {                                               
        // TODO add your handling code here:
        
    }                                              

    /**
     * @param args the command line arguments
     */
    public static void main(String args[]) {
        /* Set the Nimbus look and feel */
        //<editor-fold defaultstate="collapsed" desc=" Look and feel setting code (optional) ">
        /* If Nimbus (introduced in Java SE 6) is not available, stay with the default look and feel.
         * For details see http://download.oracle.com/javase/tutorial/uiswing/lookandfeel/plaf.html 
         */
        try {
            for (javax.swing.UIManager.LookAndFeelInfo info : javax.swing.UIManager.getInstalledLookAndFeels()) {
                if ("Nimbus".equals(info.getName())) {
                    javax.swing.UIManager.setLookAndFeel(info.getClassName());
                    break;
                }
            }
        } catch (ClassNotFoundException ex) {
            java.util.logging.Logger.getLogger(InterfaceJFrame.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
        } catch (InstantiationException ex) {
            java.util.logging.Logger.getLogger(InterfaceJFrame.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
        } catch (IllegalAccessException ex) {
            java.util.logging.Logger.getLogger(InterfaceJFrame.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
        } catch (javax.swing.UnsupportedLookAndFeelException ex) {
            java.util.logging.Logger.getLogger(InterfaceJFrame.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
        }
        //</editor-fold>

        /* Create and display the form */
        java.awt.EventQueue.invokeLater(new Runnable() {
            public void run() {
                new InterfaceJFrame().setVisible(true);
            }
        });
    }
    // Variables declaration - do not modify                     
    private javax.swing.JComboBox algojComboBox;
    private javax.swing.JButton executejButton;
    private javax.swing.JTextField inputsjTextField;
    private javax.swing.JLabel jLabel1;
    private javax.swing.JLabel jLabel2;
    private javax.swing.JLabel jLabel3;
    private javax.swing.JLabel jLabel4;
    private javax.swing.JMenu jMenu1;
    private javax.swing.JMenuBar jMenuBar1;
    private javax.swing.JMenuItem jMenuItem1;
    private javax.swing.JMenuItem jMenuItem2;
    private javax.swing.JTextField sortedjTextField;
    private javax.swing.JTextField unsortedjTextField;
    // End of variables declaration                   
}



class selection:

package sorting;


public class selection {
    
}



Is This A Good Question/Topic? 0
  • +

Replies To: How to call a variable from JFrame to another java class?

#2 burakaltr  Icon User is offline

  • D.I.C Regular

Reputation: 92
  • View blog
  • Posts: 276
  • Joined: 07-November 10

Re: How to call a variable from JFrame to another java class?

Posted 14 August 2012 - 08:07 AM

Make it a static variable field of the class it belongs to( Let's say xxx class )

And refer to it from another class

xxx.inputsjTextField
Was This Post Helpful? 0
  • +
  • -

#3 RCharles  Icon User is offline

  • New D.I.C Head

Reputation: -1
  • View blog
  • Posts: 27
  • Joined: 12-August 12

Re: How to call a variable from JFrame to another java class?

Posted 14 August 2012 - 08:10 AM

It would be so much help if you could post an example. Please
Was This Post Helpful? 0
  • +
  • -

#4 burakaltr  Icon User is offline

  • D.I.C Regular

Reputation: 92
  • View blog
  • Posts: 276
  • Joined: 07-November 10

Re: How to call a variable from JFrame to another java class?

Posted 14 August 2012 - 08:24 AM

I can not make out much of your code.

But I can only remedy what I have posted + making the variable public for access from out of that class

This post has been edited by burakaltr: 14 August 2012 - 08:25 AM

Was This Post Helpful? 0
  • +
  • -

#5 burakaltr  Icon User is offline

  • D.I.C Regular

Reputation: 92
  • View blog
  • Posts: 276
  • Joined: 07-November 10

Re: How to call a variable from JFrame to another java class?

Posted 14 August 2012 - 08:36 AM

private javax.swing.JComboBox algojComboBox;
    private javax.swing.JButton executejButton;
    public static  javax.swing.JTextField inputsjTextField;
    private javax.swing.JLabel jLabel1;
    private javax.swing.JLabel jLabel2;
    private javax.swing.JLabel jLabel3;
    private javax.swing.JLabel jLabel4;
    private javax.swing.JMenu jMenu1;
    private javax.swing.JMenuBar jMenuBar1;
    private javax.swing.JMenuItem jMenuItem1;
    private javax.swing.JMenuItem jMenuItem2;
    private javax.swing.JTextField sortedjTextField;
    private javax.swing.JTextField unsortedjTextField;
    // End of variables declaration                   
}
class d{
	
	void v(){
		InterfaceJFrame.inputsjTextField.getText();
		 
	}
}


Like here.

I've edited last portion of your code.

This post has been edited by burakaltr: 14 August 2012 - 08:37 AM

Was This Post Helpful? 0
  • +
  • -

#6 smohd  Icon User is offline

  • Critical Section
  • member icon


Reputation: 1820
  • View blog
  • Posts: 4,627
  • Joined: 14-March 10

Re: How to call a variable from JFrame to another java class?

Posted 14 August 2012 - 10:04 AM

To me that is the wost idea ever!
Why making a JTextField public and static?
Noo, you have a lot other choices to make, best and applicable to your situation. You can always build public methods to get the value of the instance variable of the class (but leave instance variables private).
Again to differentiate between presentation and the business logic, you will have an intermediate path, so you will need setters to send values from presentation to the logic behind where you do your work.

For example, if your other class can have a method to pass that value, or you can have a getter here to give you the value written...

This post has been edited by smohd: 14 August 2012 - 10:12 AM

Was This Post Helpful? 1
  • +
  • -

#7 SPorter  Icon User is offline

  • New D.I.C Head
  • member icon

Reputation: 11
  • View blog
  • Posts: 31
  • Joined: 29-June 12

Re: How to call a variable from JFrame to another java class?

Posted 14 August 2012 - 12:29 PM

In your other class (we'll call it class2) you make a method which accepts a JTextField, name that data whatever it's called in class1. Done...

So let's say class1 has a JTextField called myTextField.
In class2, make a method which will accept a JTextField as a paramter and title the parameter the name of your JTextField
public returnType methodName(JTextField myTextField);


Use it

This isn't the best practice, it would be better if the method just accepted a String then pass the String (myTextField.getText()) rather than passing the entire JTextField. My suggestion answers your question, but is poor design.
Was This Post Helpful? 0
  • +
  • -

Page 1 of 1