Text field saving

I am trying to write a program that lets users enter data into multiple text fields, and when they click on the submit button the program will save the text in the fields to a txt file. I am having trouble setting up the JButton to save the text. What is the best way to save this text to a file?

Thanks.

[317 byte] By [superhalo117a] at [2007-11-27 5:35:28]
# 1

Post up what code you have and someone will explain. Have you attached a listener to button to listen for mouseclicks? if so do you know how to get the text from a texfield? it has a method for this in the api. If all that is complete then take a look at this snippet.

http://www.exampledepot.com/egs/java.io/WriteToFile.html

If you are still not sure then post what code you have.

_helloWorld_a at 2007-7-12 15:04:35 > top of Java-index,Java Essentials,Java Programming...
# 2
I don't know how to get the text from the text fields. Also I do not want the user to be able to choose a file location to save to, I just want one file the program always saves to.
superhalo117a at 2007-7-12 15:04:35 > top of Java-index,Java Essentials,Java Programming...
# 3
Do you have a listener attached to the button?
_helloWorld_a at 2007-7-12 15:04:35 > top of Java-index,Java Essentials,Java Programming...
# 4

This is what I have so far:

package my.form;

/*********************************************/

/* Program: formUI.java, Rev 05/26/07*/

/* Author:*/

/* Digital Internet Productions.*/

/* This is the GUI for the form used */

/* to save the text field.*/

/* Input: Text Field, Output: comment.txt */

/********************************************/

public class formUI extends javax.swing.JFrame {

public formUI() {

initComponents();

}

// <editor-fold defaultstate="collapsed" desc=" Generated Code ">

private void initComponents() {

jLabel1 = new javax.swing.JLabel();

jTextField1 = new javax.swing.JTextField();

jLabel2 = new javax.swing.JLabel();

jLabel3 = new javax.swing.JLabel();

jTextField2 = new javax.swing.JTextField();

jLabel4 = new javax.swing.JLabel();

jTextField3 = new javax.swing.JTextField();

jButton1 = new javax.swing.JButton();

setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);

jLabel1.setText("Please Enter your questions and comments below");

jLabel2.setText("Name:");

jLabel3.setText("Email:");

jLabel4.setText("Question / Comment:");

jButton1.setText("Submit");

jButton1.addMouseListener(new java.awt.event.MouseAdapter() {

public void mouseClicked(java.awt.event.MouseEvent evt) {

jButton1MouseClicked(evt);

}

});

javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());

getContentPane().setLayout(layout);

layout.setHorizontalGroup(

layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)

.addGroup(layout.createSequentialGroup()

.addGap(146, 146, 146)

.addComponent(jButton1)

.addContainerGap(154, Short.MAX_VALUE))

.addGroup(layout.createSequentialGroup()

.addContainerGap()

.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING)

.addComponent(jTextField3, javax.swing.GroupLayout.PREFERRED_SIZE, 312, javax.swing.GroupLayout.PREFERRED_SIZE)

.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING)

.addGroup(javax.swing.GroupLayout.Alignment.LEADING, layout.createSequentialGroup()

.addGap(85, 85, 85)

.addComponent(jLabel1))

.addGroup(javax.swing.GroupLayout.Alignment.LEADING, layout.createSequentialGroup()

.addGap(19, 19, 19)

.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)

.addGroup(layout.createSequentialGroup()

.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)

.addComponent(jLabel2)

.addComponent(jLabel3))

.addGap(12, 12, 12)

.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false)

.addComponent(jTextField2)

.addComponent(jTextField1, javax.swing.GroupLayout.DEFAULT_SIZE, 208, Short.MAX_VALUE)))

.addComponent(jLabel4)))))

.addGap(43, 43, 43))

);

layout.setVerticalGroup(

layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)

.addGroup(layout.createSequentialGroup()

.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING)

.addComponent(jLabel2)

.addGroup(layout.createSequentialGroup()

.addComponent(jLabel1)

.addGap(21, 21, 21)

.addComponent(jTextField1, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)))

.addGap(21, 21, 21)

.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING)

.addComponent(jLabel3)

.addComponent(jTextField2, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))

.addGap(27, 27, 27)

.addComponent(jLabel4)

.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)

.addComponent(jTextField3, javax.swing.GroupLayout.PREFERRED_SIZE, 156, javax.swing.GroupLayout.PREFERRED_SIZE)

.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)

.addComponent(jButton1)

.addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))

);

pack();

}// </editor-fold>

private void jButton1MouseClicked(java.awt.event.MouseEvent evt) {

}

/**

* @param args the command line arguments

*/

public static void main(String args[]) {

java.awt.EventQueue.invokeLater(new Runnable() {

public void run() {

new formUI().setVisible(true);

}

});

}

// Variables declaration - do not modify

private javax.swing.JButton jButton1;

private javax.swing.JLabel jLabel1;

private javax.swing.JLabel jLabel2;

private javax.swing.JLabel jLabel3;

private javax.swing.JLabel jLabel4;

private javax.swing.JTextField jTextField1;

private javax.swing.JTextField jTextField2;

private javax.swing.JTextField jTextField3;

// End of variables declaration

}

superhalo117a at 2007-7-12 15:04:35 > top of Java-index,Java Essentials,Java Programming...
# 5

import java.io.BufferedWriter;

import java.io.FileWriter;

import java.io.IOException;

/*********************************************/

/* Program: formUI.java, Rev 05/26/07*/

/* Author:*/

/* Digital Internet Productions.*/

/* This is the GUI for the form used */

/* to save the text field.*/

/* Input: Text Field, Output: comment.txt */

/********************************************/

public class formUI extends javax.swing.JFrame {

public formUI() {

initComponents();

}

// <editor-fold defaultstate="collapsed" desc=" Generated Code ">

private void initComponents() {

jLabel1 = new javax.swing.JLabel();

jTextField1 = new javax.swing.JTextField();

jLabel2 = new javax.swing.JLabel();

jLabel3 = new javax.swing.JLabel();

jTextField2 = new javax.swing.JTextField();

jLabel4 = new javax.swing.JLabel();

jTextField3 = new javax.swing.JTextField();

jButton1 = new javax.swing.JButton();

setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);

jLabel1.setText("Please Enter your questions and comments below");

jLabel2.setText("Name:");

jLabel3.setText("Email:");

jLabel4.setText("Question / Comment:");

jButton1.setText("Submit");

jButton1.addMouseListener(new java.awt.event.MouseAdapter() {

public void mouseClicked(java.awt.event.MouseEvent evt) {

jButton1MouseClicked(evt);

}

});

javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());

getContentPane().setLayout(layout);

layout.setHorizontalGroup(

layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)

.addGroup(layout.createSequentialGroup()

.addGap(146, 146, 146)

.addComponent(jButton1)

.addContainerGap(154, Short.MAX_VALUE))

.addGroup(layout.createSequentialGroup()

.addContainerGap()

.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING)

.addComponent(jTextField3, javax.swing.GroupLayout.PREFERRED_SIZE, 312, javax.swing.GroupLayout.PREFERRED_SIZE)

.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING)

.addGroup(javax.swing.GroupLayout.Alignment.LEADING, layout.createSequentialGroup()

.addGap(85, 85, 85)

.addComponent(jLabel1))

.addGroup(javax.swing.GroupLayout.Alignment.LEADING, layout.createSequentialGroup()

.addGap(19, 19, 19)

.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)

.addGroup(layout.createSequentialGroup()

.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)

.addComponent(jLabel2)

.addComponent(jLabel3))

.addGap(12, 12, 12)

.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false)

.addComponent(jTextField2)

.addComponent(jTextField1, javax.swing.GroupLayout.DEFAULT_SIZE, 208, Short.MAX_VALUE)))

.addComponent(jLabel4)))))

.addGap(43, 43, 43))

);

layout.setVerticalGroup(

layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)

.addGroup(layout.createSequentialGroup()

.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING)

.addComponent(jLabel2)

.addGroup(layout.createSequentialGroup()

.addComponent(jLabel1)

.addGap(21, 21, 21)

.addComponent(jTextField1, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)))

.addGap(21, 21, 21)

.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING)

.addComponent(jLabel3)

.addComponent(jTextField2, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))

.addGap(27, 27, 27)

.addComponent(jLabel4)

.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)

.addComponent(jTextField3, javax.swing.GroupLayout.PREFERRED_SIZE, 156, javax.swing.GroupLayout.PREFERRED_SIZE)

.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)

.addComponent(jButton1)

.addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))

);

pack();

}// </editor-fold>

private void jButton1MouseClicked(java.awt.event.MouseEvent evt) {

StringBuffer sb = new StringBuffer();

sb.append("Name: "+jTextField1.getText()+"\n");

sb.append("Email: "+jTextField2.getText()+"\n");

sb.append("Comment: "+jTextField3.getText());

writeToFile(sb.toString());

}

private void writeToFile(String s) {

try {

BufferedWriter out = new BufferedWriter(new FileWriter("C:\\comment.txt",true));

out.write(s);

out.close();

} catch (IOException e) {

e.toString();

}

}

/**

* @param args the command line arguments

*/

public static void main(String args[]) {

java.awt.EventQueue.invokeLater(new Runnable() {

public void run() {

new formUI().setVisible(true);

}

});

}

// Variables declaration - do not modify

private javax.swing.JButton jButton1;

private javax.swing.JLabel jLabel1;

private javax.swing.JLabel jLabel2;

private javax.swing.JLabel jLabel3;

private javax.swing.JLabel jLabel4;

private javax.swing.JTextField jTextField1;

private javax.swing.JTextField jTextField2;

private javax.swing.JTextField jTextField3;

// End of variables declaration

}

That should work fine. A few things though, there is a lot more to learn in Java than simple form building in Netbeans. Also it is bad to have mix logic in with the GUI code, usually this would be separated in another class.

You should always start class name off with an Uppercase letter.

Message was edited by:

_helloWorld_

_helloWorld_a at 2007-7-12 15:04:35 > top of Java-index,Java Essentials,Java Programming...
# 6
I usually hand code all of my programs, but I decided to see if I like netbeans. thanks for your help
superhalo117a at 2007-7-12 15:04:35 > top of Java-index,Java Essentials,Java Programming...