Java File Operations with Text Box – Load and Save Text you type in
Zip Archive of Source code: TextBoxWithFileOps
Type and edit normally in the text box. Load a file if you wish first. Then save off to file. Includes the use of a filechooser and a menu.
In the code below
- Main calls the class FileOpGUI and sets it visible. This must invoke all the following steps
- FileOpGUI assumes the name and initializes all the constituent pieces.
- Code at the bottom declares all the parts and pieces
- Next code after the Class declaration instantiates parts / pieces using the NEW syntax
- Some properties of the bits and pieces are set like titles
- Menu code in automatically entered but the programmer has to fill in what they do. In this case simple file ops like SAVE, OPEN
<br /><br />
/*<br /><br />
* To change this template, choose Tools | Templates<br /><br />
* and open the template in the editor.<br /><br />
*/<br />
</p>
</p>
<p>
<p><br />
/*<br /><br />
* FileOpGUI.java<br /><br />
*<br /><br />
* Created on Jan 13, 2012, 2:08:15 PM<br /><br />
*/<br /><br />
package FileOperations;<br /><br />
import java.io.*;<br /><br />
//import java.util.prefs.Preferences;<br />
</p>
</p>
<p>
<p><br />
/**<br /><br />
*<br /><br />
* @author F. Sandlewould<br /><br />
*/<br /><br />
public class FileOpGUI extends javax.swing.JFrame {<br />
</p>
</p>
<p>
<p><br />
/** Creates new form FileOpGUI */<br /><br />
public FileOpGUI() {<br /><br />
initComponents();<br /><br />
}<br />
</p>
</p>
<p>
<p><br />
/** This method is called from within the constructor to<br /><br />
* initialize the form.<br /><br />
* WARNING: Do NOT modify this code. The content of this method is<br /><br />
* always regenerated by the Form Editor.<br /><br />
*/<br /><br />
@SuppressWarnings(&quot;unchecked&quot;)<br /><br />
// &lt;editor-fold defaultstate=&quot;collapsed&quot; desc=&quot;Generated Code&quot;&gt;//GEN-BEGIN:initComponents<br /><br />
private void initComponents() {<br />
</p>
</p>
<p>
<p><br />
fileChooser = new javax.swing.JFileChooser();<br /><br />
jScrollPane1 = new javax.swing.JScrollPane();<br /><br />
FileContentsTextArea = new javax.swing.JTextArea();<br /><br />
jScrollPane2 = new javax.swing.JScrollPane();<br /><br />
UserPromptTextArea = new javax.swing.JTextArea();<br /><br />
AppendTestButton = new javax.swing.JButton();<br /><br />
jMenuBar1 = new javax.swing.JMenuBar();<br /><br />
FileOperations = new javax.swing.JMenu();<br /><br />
mnuOpenFile = new javax.swing.JMenuItem();<br /><br />
mnuSaveFile = new javax.swing.JMenuItem();<br /><br />
mnuNewFile = new javax.swing.JMenuItem();<br />
</p>
</p>
<p>
<p><br />
setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);<br /><br />
setTitle(&quot;File Operations&quot;);<br /><br />
setName(&quot;FileFrame&quot;); // NOI18N<br />
</p>
</p>
<p>
<p><br />
FileContentsTextArea.setColumns(20);<br /><br />
FileContentsTextArea.setRows(5);<br /><br />
jScrollPane1.setViewportView(FileContentsTextArea);<br />
</p>
</p>
<p>
<p><br />
UserPromptTextArea.setColumns(20);<br /><br />
UserPromptTextArea.setRows(5);<br /><br />
UserPromptTextArea.setText(&quot;User prompt&quot;);<br /><br />
jScrollPane2.setViewportView(UserPromptTextArea);<br />
</p>
</p>
<p>
<p><br />
AppendTestButton.setText(&quot;Append&quot;);<br /><br />
AppendTestButton.addActionListener(new java.awt.event.ActionListener() {<br /><br />
public void actionPerformed(java.awt.event.ActionEvent evt) {<br /><br />
AppendTestButtonActionPerformed(evt);<br /><br />
}<br /><br />
});<br />
</p>
</p>
<p>
<p><br />
FileOperations.setText(&quot;File&quot;);<br />
</p>
</p>
<p>
<p><br />
mnuOpenFile.setText(&quot;Open&quot;);<br /><br />
mnuOpenFile.addActionListener(new java.awt.event.ActionListener() {<br /><br />
public void actionPerformed(java.awt.event.ActionEvent evt) {<br /><br />
mnuOpenFileActionPerformed(evt);<br /><br />
}<br /><br />
});<br /><br />
FileOperations.add(mnuOpenFile);<br />
</p>
</p>
<p>
<p><br />
mnuSaveFile.setText(&quot;Save&quot;);<br /><br />
mnuSaveFile.addActionListener(new java.awt.event.ActionListener() {<br /><br />
public void actionPerformed(java.awt.event.ActionEvent evt) {<br /><br />
mnuSaveFileActionPerformed(evt);<br /><br />
}<br /><br />
});<br /><br />
FileOperations.add(mnuSaveFile);<br />
</p>
</p>
<p>
<p><br />
mnuNewFile.setText(&quot;New&quot;);<br /><br />
mnuNewFile.addActionListener(new java.awt.event.ActionListener() {<br /><br />
public void actionPerformed(java.awt.event.ActionEvent evt) {<br /><br />
mnuNewFileActionPerformed(evt);<br /><br />
}<br /><br />
});<br /><br />
FileOperations.add(mnuNewFile);<br />
</p>
</p>
<p>
<p><br />
jMenuBar1.add(FileOperations);<br />
</p>
</p>
<p>
<p><br />
setJMenuBar(jMenuBar1);<br />
</p>
</p>
<p>
<p><br />
javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());<br /><br />
getContentPane().setLayout(layout);<br /><br />
layout.setHorizontalGroup(<br /><br />
layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)<br /><br />
.addGroup(javax.swing.GroupLayout.Alignment.TRAILING, layout.createSequentialGroup()<br /><br />
.addContainerGap()<br /><br />
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING)<br /><br />
.addComponent(jScrollPane1, javax.swing.GroupLayout.Alignment.LEADING, javax.swing.GroupLayout.DEFAULT_SIZE, 673, Short.MAX_VALUE)<br /><br />
.addComponent(jScrollPane2, javax.swing.GroupLayout.DEFAULT_SIZE, 673, Short.MAX_VALUE)<br /><br />
.addComponent(AppendTestButton, javax.swing.GroupLayout.Alignment.LEADING))<br /><br />
.addContainerGap())<br /><br />
);<br /><br />
layout.setVerticalGroup(<br /><br />
layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)<br /><br />
.addGroup(layout.createSequentialGroup()<br /><br />
.addContainerGap()<br /><br />
.addComponent(jScrollPane1, javax.swing.GroupLayout.PREFERRED_SIZE, 313, javax.swing.GroupLayout.PREFERRED_SIZE)<br /><br />
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)<br /><br />
.addComponent(jScrollPane2, javax.swing.GroupLayout.PREFERRED_SIZE, 60, javax.swing.GroupLayout.PREFERRED_SIZE)<br /><br />
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)<br /><br />
.addComponent(AppendTestButton)<br /><br />
.addContainerGap(51, Short.MAX_VALUE))<br /><br />
);<br />
</p>
</p>
<p>
<p><br />
pack();<br /><br />
}// &lt;/editor-fold&gt;//GEN-END:initComponents<br />
</p>
</p>
<p>
<p><br />
//routine needed to append a line &amp; update file<br /><br />
//append line to the textarea<br /><br />
//use the SaveFile function<br />
</p>
</p>
<p>
<p><br />
private void mnuOpenFileActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_mnuOpenFileActionPerformed<br />
</p>
</p>
<p>
<p><br />
fileChooser.setDialogTitle(&quot;Open SASL List&quot;);<br /><br />
fileChooser.setApproveButtonText(&quot;Open&quot;);<br />
</p>
</p>
<p>
<p><br />
int returnVal = fileChooser.showOpenDialog(this);<br /><br />
if (returnVal == fileChooser.APPROVE_OPTION) {<br /><br />
File file = fileChooser.getSelectedFile();<br /><br />
try {<br /><br />
// What to do with the file, e.g. display it in a TextArea<br /><br />
FileContentsTextArea.read( new FileReader( file.getAbsolutePath() ), null );<br /><br />
UserPromptTextArea.setText( &quot;Opening: &quot; + &quot;\n&quot;+ &quot;\r&quot; + file.getAbsolutePath());<br /><br />
} catch (IOException ex) {<br /><br />
UserPromptTextArea.setText(&quot;Problem accessing file&quot;+file.getAbsolutePath());<br /><br />
}<br /><br />
} else {<br /><br />
UserPromptTextArea.setText(&quot;File access cancelled by user.&quot;);<br /><br />
}<br /><br />
}//GEN-LAST:event_mnuOpenFileActionPerformed<br />
</p>
</p>
<p>
<p><br />
private void mnuSaveFileActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_mnuSaveFileActionPerformed<br /><br />
Writer output = null;<br /><br />
fileChooser.setDialogTitle(&quot;Save SASL List&quot;);<br /><br />
fileChooser.setApproveButtonText(&quot;Save&quot;);<br /><br />
int returnVal = fileChooser.showOpenDialog(this);<br /><br />
if (returnVal == fileChooser.APPROVE_OPTION) {<br /><br />
File file = fileChooser.getSelectedFile();<br /><br />
try{<br /><br />
WriteFile(file.getAbsolutePath(),FileContentsTextArea.getText());<br /><br />
}<br /><br />
catch(NullPointerException ex){}<br /><br />
} else {<br /><br />
UserPromptTextArea.setText(&quot;File write cancelled by user.&quot;);<br /><br />
}<br /><br />
}//GEN-LAST:event_mnuSaveFileActionPerformed<br />
</p>
</p>
<p>
<p><br />
private void mnuNewFileActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_mnuNewFileActionPerformed<br /><br />
//open up the file chooser &gt; user navigates to preferred location<br /><br />
//user enters name in file chooser text line<br /><br />
//user clicks enter<br />
</p>
</p>
<p>
<p><br />
Writer output = null;<br /><br />
fileChooser.setDialogTitle(&quot;Create new SASL log file&quot;);<br /><br />
fileChooser.setApproveButtonText(&quot;Save As&quot;);<br /><br />
int returnVal = fileChooser.showOpenDialog(this);<br /><br />
if (returnVal == fileChooser.APPROVE_OPTION) {<br /><br />
File file = fileChooser.getSelectedFile();<br /><br />
try{<br /><br />
WriteFile(file.getAbsolutePath(),FileContentsTextArea.getText());<br /><br />
}<br /><br />
catch(NullPointerException ex){}<br /><br />
} else {<br /><br />
UserPromptTextArea.setText(&quot;File write cancelled by user.&quot;);<br /><br />
}<br />
</p>
</p>
<p>
<p><br />
}//GEN-LAST:event_mnuNewFileActionPerformed<br />
</p>
</p>
<p>
<p><br />
private void AppendTestButtonActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_AppendTestButtonActionPerformed<br /><br />
AppendEntry(&quot;another line woot!&quot;);<br /><br />
AppendEntry(&quot;PathFileName= &quot;); // + fileChooser.getSelectedFile().getAbsolutePath() ); &lt;--this part causes another exception!! ( null pointer )<br />
</p>
</p>
<p>
<p><br />
}//GEN-LAST:event_AppendTestButtonActionPerformed<br />
</p>
</p>
<p>
<p><br />
public void AppendEntry(String Line){<br /><br />
FileContentsTextArea.append( &quot;\n&quot; + Line );<br /><br />
//textarea -&gt; file save<br /><br />
try{<br /><br />
WriteFile(fileChooser.getSelectedFile().getAbsolutePath(),FileContentsTextArea.getText());<br /><br />
}<br /><br />
catch( NullPointerException ex)<br /><br />
{<br /><br />
UserPromptTextArea.setText(&quot;Problem writing file &gt; File not saved&quot;);<br /><br />
}<br /><br />
};<br />
</p>
</p>
<p>
<p><br />
public void WriteFile(String PathFileName, String FileContents) throws NullPointerException{<br /><br />
Writer output = null;<br /><br />
try {<br /><br />
output = new BufferedWriter(new FileWriter(PathFileName));<br /><br />
output.write(FileContents);<br /><br />
output.close();<br /><br />
FileContentsTextArea.read( new FileReader( PathFileName ), null );<br /><br />
UserPromptTextArea.setText( &quot;File saved: &quot; + &quot;\n&quot;+ &quot;\r&quot; + PathFileName);<br /><br />
}<br /><br />
catch (IOException ex) {<br /><br />
UserPromptTextArea.setText(&quot;Problem writing file&quot;+ PathFileName);<br /><br />
throw new NullPointerException(&quot;Cannot write file&quot;);<br /><br />
}<br /><br />
}<br />
</p>
</p>
<p>
<p><br />
/**<br /><br />
* @param args the command line arguments<br /><br />
*/<br /><br />
public static void main(String args[]) {<br /><br />
/* Set the Nimbus look and feel */<br /><br />
//&lt;editor-fold defaultstate=&quot;collapsed&quot; desc=&quot; Look and feel setting code (optional) &quot;&gt;<br /><br />
/* If Nimbus (introduced in Java SE 6) is not available, stay with the default look and feel.<br /><br />
* For details see http://download.oracle.com/javase/tutorial/uiswing/lookandfeel/plaf.html<br /><br />
*/<br /><br />
try {<br /><br />
for (javax.swing.UIManager.LookAndFeelInfo info : javax.swing.UIManager.getInstalledLookAndFeels()) {<br /><br />
if (&quot;Nimbus&quot;.equals(info.getName())) {<br /><br />
javax.swing.UIManager.setLookAndFeel(info.getClassName());<br /><br />
break;<br /><br />
}<br /><br />
}<br /><br />
} catch (ClassNotFoundException ex) {<br /><br />
java.util.logging.Logger.getLogger(FileOpGUI.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);<br /><br />
} catch (InstantiationException ex) {<br /><br />
java.util.logging.Logger.getLogger(FileOpGUI.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);<br /><br />
} catch (IllegalAccessException ex) {<br /><br />
java.util.logging.Logger.getLogger(FileOpGUI.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);<br /><br />
} catch (javax.swing.UnsupportedLookAndFeelException ex) {<br /><br />
java.util.logging.Logger.getLogger(FileOpGUI.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);<br /><br />
}<br /><br />
//&lt;/editor-fold&gt;<br />
</p>
</p>
<p>
<p><br />
/* Create and display the form */<br /><br />
java.awt.EventQueue.invokeLater(new Runnable() {<br />
</p>
</p>
<p>
<p><br />
public void run() {<br /><br />
new FileOpGUI().setVisible(true);<br /><br />
}<br /><br />
});<br /><br />
}<br /><br />
// Variables declaration - do not modify//GEN-BEGIN:variables<br /><br />
private javax.swing.JButton AppendTestButton;<br /><br />
private javax.swing.JTextArea FileContentsTextArea;<br /><br />
private javax.swing.JMenu FileOperations;<br /><br />
private javax.swing.JTextArea UserPromptTextArea;<br /><br />
private javax.swing.JFileChooser fileChooser;<br /><br />
private javax.swing.JMenuBar jMenuBar1;<br /><br />
private javax.swing.JScrollPane jScrollPane1;<br /><br />
private javax.swing.JScrollPane jScrollPane2;<br /><br />
private javax.swing.JMenuItem mnuNewFile;<br /><br />
private javax.swing.JMenuItem mnuOpenFile;<br /><br />
private javax.swing.JMenuItem mnuSaveFile;<br /><br />
// End of variables declaration//GEN-END:variables<br /><br />
}<br />
</p>
</p>
<p>
<p><br />
Java Programming Language Table of Contents
- Java POI Poorly Obfuscated Interface Project to Load a SpreadSheet with Data
- Java File Operations with Text Box – Load and Save Text you type in
- Java in Eclipse Integrated Development Environment IDE
- Java Software Internationalization
- Java Multilistener – Event Demo that shows how you can listen to one or to all
- Java Serial Port
- Java – Set the Size of a FrameView programmatically
- Populate an Excel xlsx xls spread sheet with Apache POI Library
End TOC


0 Comments