Mark Miranda wrote:
I made this GUI using netbeans and I was wondering, how can I store the JTextFields to a local variable?
jTextField1 is a local(instance) variable (On a side note, it is a good idea to provide more informative names for variables, like firstNameField, or emailField or whateverField)
Is this what you were asking? Or did you mean how to store the value as an instance variable. In that case use something like
Please disregard the private void jTextField1ActionPerformed.... that shouldn't be there...my mistake
My overall goal is to create a form and once the 'Add' button is clicked I would like to display, using System.out.println() (for debugging purposes), each JTextField all at once.
I would like to use one event handler and that is AddressEntryEventHandler...
above mentioned goal can be accomplished in this way- make an array of JTextFields at class level, no need to have any ActionListener for the text fields, you need to have an ActionListener added to the JButton.
Here printtextFieldData() is a class method and is called from the inner anonymous class as jTextField array is not accessable form the inner anoymous class.
Champ, just a small observation on this. I think you want to store the value just to get it in a lower layer, isn't it? Well, here are some tips that I think that will help you:
1. In your JFrame, you have an instance level variable (private JTextField name) and you have a getter method that returns its content (for instance, getName -> return name.getText());
2. You have an ActionListener that listens to some button (for instance, a menu item). When you click it, something happens (for instance, another window is opened). It has an instance-level variable that stores the window that has the text field;
3. When you are building the window that has the menu item, you instantiate the ActionListener and pass the current window to this ActionListener (new YourActionListener(this));
4. In the actionPerformed method, you just call window.getName method from the window and then you'll have the value that is currently filled in the text field.