Download Files

Survey
yes no Was this document useful for you?
   Thank you for your participation!

* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project

Document related concepts
no text concepts found
Transcript
File Tutorial
AP Computer Science
2005-2006
Create the above JFrame GUI with a JTextArea, two JLabels, and 2 JButtons.
This program will write a text file to disk, read a text file from disk, and display the
contents of the file. The file can also be viewed or written with Notepad or any word
processor using a .txt extension.
Note the \\ in the filenames. Recall \ is the "escape" character (\n, \t, etc.). The sequence \\
is needed to indicate you are not using an escape sequence.
If you just enter a filename instead of an absolute pathname, the file is written to the
current directory (i.e., your NetBeans project directory).
I also write setLocationRelativeTo(null); after initComponents( ); in the GUI constructor.
1
private void jOpenButtonActionPerformed(java.awt.event.ActionEvent evt) {
String fileName = "C:\\Documents and Settings\\Curt\\
My Documents\\School\\2005-2006 courses\\Java\\myText.txt" ;
String line;
String output = "";
Scanner input;
try
{
input = new Scanner(new File( fileName ));
do
{
line = input.nextLine( );
output += line + "\n";
} while ( input.hasNext( ) );
jInputTextArea.setText(output);
input.close();
}
catch ( IOException iox )
{
System.out.println("Problem reading " + fileName );
}
}
private void jSaveButtonActionPerformed(java.awt.event.ActionEvent evt) {
String input = jInputTextArea.getText( );
String fileName = "C:\\Documents and Settings\\Curt\\
My Documents\\School\\2005-2006 courses\\Java\\myText.txt";
try
{
FileWriter writer = new FileWriter( fileName );
writer.write( input );
jInputTextArea.setText("");
writer.close();
}
catch ( IOException iox )
{
System.out.println("Problem writing " + fileName );
}
}
2
Using JFileChooser
To open and save files without hard-coding the file name or asking the user to enter the
name, use JFileChooser. The program below write, reads, and displays text files using
JFileChoosers to select the files.
3
private void jOpenButtonActionPerformed(java.awt.event.ActionEvent evt) {
JFileChooser fileChooser = new JFileChooser( );
int result = fileChooser.showOpenDialog( this );
if( result == JFileChooser.CANCEL_OPTION)
return;
File fileName = fileChooser.getSelectedFile( );
String line;
String output = "";
Scanner input;
try
{
input = new Scanner(new File( fileName.getCanonicalPath( ) ));
do
{
line = input.nextLine( );
output += line + "\n";
} while ( input.hasNext( ) );
jTextArea.setText(output);
input.close();
}
catch ( IOException iox )
{
System.out.println("Problem reading " + fileName );
}
}
private void jSaveButtonActionPerformed(java.awt.event.ActionEvent evt) {
String input = jTextArea.getText( );
JFileChooser fileChooser = new JFileChooser( );
int result = fileChooser.showSaveDialog( this );
if( result == JFileChooser.CANCEL_OPTION)
return;
File fileName = fileChooser.getSelectedFile( );
PrintWriter outFile;
try
{
outFile = new PrintWriter(new FileWriter(fileName));
}
catch (IOException e)
{
return;
}
outFile.print(input);
outFile.close( );
}
4
5
6
7
8
/*
* GiftListGUI.java
*
* Created on November 12, 2005, 4:14 PM
*/
package GiftList;
import
import
import
import
javax.swing.*;
java.awt.*;
java.util.*;
java.io.*;
/**
*
* @author Curtis Watson
*/
public class GiftListGUI extends javax.swing.JFrame {
ArrayList list = new ArrayList(100);
/** Creates new form GiftListGUI */
public GiftListGUI() {
initComponents();
jDeletePanel.setVisible(false);
jAddPanel.setVisible(false);
setLocationRelativeTo(null);
}
/** 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.
*/
// <editor-fold defaultstate="collapsed" desc=" Generated Code ">
private void initComponents() {
buttonGroup1 = new javax.swing.ButtonGroup();
jTabbedPane1 = new javax.swing.JTabbedPane();
jMenuPanel = new javax.swing.JPanel();
jLabel1 = new javax.swing.JLabel();
jCreatePanel = new javax.swing.JPanel();
jLabel2 = new javax.swing.JLabel();
jLabel3 = new javax.swing.JLabel();
jLabel4 = new javax.swing.JLabel();
jFirstNameField = new javax.swing.JTextField();
jLastNameField = new javax.swing.JTextField();
jGiftRequestedField = new javax.swing.JTextField();
jCreateButton = new javax.swing.JButton();
jViewPanel = new javax.swing.JPanel();
jListArea = new javax.swing.JTextArea();
jViewButton = new javax.swing.JButton();
jPrintButton = new javax.swing.JButton();
jEditPanel = new javax.swing.JPanel();
jRadioPanel = new javax.swing.JPanel();
jDeleteRadio = new javax.swing.JRadioButton();
jModifyRadio = new javax.swing.JRadioButton();
jAddRadio = new javax.swing.JRadioButton();
jDeletePanel = new javax.swing.JPanel();
jLabel5 = new javax.swing.JLabel();
9
jIDtoDeleteField = new javax.swing.JTextField();
jDeleteButton = new javax.swing.JButton();
jAddPanel = new javax.swing.JPanel();
jLabel6 = new javax.swing.JLabel();
jLabel7 = new javax.swing.JLabel();
jLabel8 = new javax.swing.JLabel();
jNameFirstField = new javax.swing.JTextField();
jNameSecondField = new javax.swing.JTextField();
jRequestedGiftField = new javax.swing.JTextField();
jUpdateButton = new javax.swing.JButton();
jScrollPane1 = new javax.swing.JScrollPane();
jDisplayArea = new javax.swing.JTextArea();
setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);
jTabbedPane1.setMinimumSize(new java.awt.Dimension(340, 565));
jTabbedPane1.setPreferredSize(new java.awt.Dimension(340, 565));
jMenuPanel.setLayout(new org.netbeans.lib.awtextra.AbsoluteLayout());
jMenuPanel.setMinimumSize(new java.awt.Dimension(338, 566));
jMenuPanel.setPreferredSize(new java.awt.Dimension(338, 566));
jLabel1.setIcon(new
javax.swing.ImageIcon("C:\\JavaPrograms\\FileExample\\opusSanta.jpg"));
jLabel1.setMaximumSize(new java.awt.Dimension(338, 566));
jLabel1.setMinimumSize(new java.awt.Dimension(338, 566));
jLabel1.setOpaque(true);
jLabel1.setPreferredSize(new java.awt.Dimension(338, 565));
jMenuPanel.add(jLabel1, new
org.netbeans.lib.awtextra.AbsoluteConstraints(0, 0, -1, -1));
jTabbedPane1.addTab("Gift List Home", jMenuPanel);
jCreatePanel.setLayout(new org.netbeans.lib.awtextra.AbsoluteLayout());
jLabel2.setText("First Name");
jCreatePanel.add(jLabel2, new
org.netbeans.lib.awtextra.AbsoluteConstraints(30, 50, -1, -1));
jLabel3.setText("Last Name");
jCreatePanel.add(jLabel3, new
org.netbeans.lib.awtextra.AbsoluteConstraints(30, 100, -1, -1));
jLabel4.setText("Gift Requested");
jCreatePanel.add(jLabel4, new
org.netbeans.lib.awtextra.AbsoluteConstraints(30, 150, -1, -1));
jCreatePanel.add(jFirstNameField, new
org.netbeans.lib.awtextra.AbsoluteConstraints(140, 50, 150, -1));
jCreatePanel.add(jLastNameField, new
org.netbeans.lib.awtextra.AbsoluteConstraints(140, 100, 150, -1));
jCreatePanel.add(jGiftRequestedField, new
org.netbeans.lib.awtextra.AbsoluteConstraints(140, 150, 150, -1));
jCreateButton.setBackground(new java.awt.Color(255, 255, 255));
jCreateButton.setFont(new java.awt.Font("Tahoma", 1, 11));
jCreateButton.setForeground(new java.awt.Color(255, 0, 51));
jCreateButton.setIcon(new
javax.swing.ImageIcon("C:\\JavaPrograms\\FileExample\\xmasTree.jpg"));
jCreateButton.setText("Click to Add Recipient to List");
jCreateButton.setHorizontalTextPosition(javax.swing.SwingConstants.CENTER);
jCreateButton.setIconTextGap(0);
10
jCreateButton.setVerticalAlignment(javax.swing.SwingConstants.BOTTOM);
jCreateButton.setVerticalTextPosition(javax.swing.SwingConstants.BOTTOM);
jCreateButton.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
jCreateButtonActionPerformed(evt);
}
});
jCreatePanel.add(jCreateButton, new
org.netbeans.lib.awtextra.AbsoluteConstraints(20, 200, -1, -1));
jTabbedPane1.addTab("Create List", jCreatePanel);
jViewPanel.setLayout(new org.netbeans.lib.awtextra.AbsoluteLayout());
jListArea.setColumns(20);
jListArea.setRows(20);
jListArea.setMinimumSize(new java.awt.Dimension(300, 450));
jListArea.setPreferredSize(new java.awt.Dimension(300, 450));
jViewPanel.add(jListArea, new
org.netbeans.lib.awtextra.AbsoluteConstraints(20, 20, -1, -1));
jViewButton.setText("View List");
jViewButton.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
jViewButtonActionPerformed(evt);
}
});
jViewPanel.add(jViewButton, new
org.netbeans.lib.awtextra.AbsoluteConstraints(20, 500, -1, -1));
jPrintButton.setText("Print List");
jPrintButton.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
jPrintButtonActionPerformed(evt);
}
});
jViewPanel.add(jPrintButton, new
org.netbeans.lib.awtextra.AbsoluteConstraints(240, 500, -1, -1));
jTabbedPane1.addTab("View List", jViewPanel);
jEditPanel.setLayout(new org.netbeans.lib.awtextra.AbsoluteLayout());
jEditPanel.setMinimumSize(new java.awt.Dimension(340, 565));
jEditPanel.setPreferredSize(new java.awt.Dimension(340, 565));
jRadioPanel.setLayout(new org.netbeans.lib.awtextra.AbsoluteLayout());
jRadioPanel.setBorder(new javax.swing.border.TitledBorder("Select an
Editing Option"));
buttonGroup1.add(jDeleteRadio);
jDeleteRadio.setText("Delete a record");
jDeleteRadio.addItemListener(new java.awt.event.ItemListener() {
public void itemStateChanged(java.awt.event.ItemEvent evt) {
jDeleteRadioItemStateChanged(evt);
}
});
jRadioPanel.add(jDeleteRadio, new
org.netbeans.lib.awtextra.AbsoluteConstraints(10, 30, -1, -1));
11
buttonGroup1.add(jModifyRadio);
jModifyRadio.setText("Modify a record");
jModifyRadio.addItemListener(new java.awt.event.ItemListener() {
public void itemStateChanged(java.awt.event.ItemEvent evt) {
jModifyRadioItemStateChanged(evt);
}
});
jRadioPanel.add(jModifyRadio, new
org.netbeans.lib.awtextra.AbsoluteConstraints(10, 60, 140, -1));
buttonGroup1.add(jAddRadio);
jAddRadio.setText("Add new record");
jAddRadio.addItemListener(new java.awt.event.ItemListener() {
public void itemStateChanged(java.awt.event.ItemEvent evt) {
jAddRadioItemStateChanged(evt);
}
});
jRadioPanel.add(jAddRadio, new
org.netbeans.lib.awtextra.AbsoluteConstraints(10, 90, -1, -1));
jEditPanel.add(jRadioPanel, new
org.netbeans.lib.awtextra.AbsoluteConstraints(20, 30, 160, 140));
jDeletePanel.setLayout(new org.netbeans.lib.awtextra.AbsoluteLayout());
jDeletePanel.setBorder(new javax.swing.border.TitledBorder("Delete
Option"));
jLabel5.setText("Enter ID to delete");
jDeletePanel.add(jLabel5, new
org.netbeans.lib.awtextra.AbsoluteConstraints(10, 30, 110, -1));
jDeletePanel.add(jIDtoDeleteField, new
org.netbeans.lib.awtextra.AbsoluteConstraints(10, 60, 30, -1));
jDeleteButton.setText("Delete");
jDeleteButton.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
jDeleteButtonActionPerformed(evt);
}
});
jDeletePanel.add(jDeleteButton, new
org.netbeans.lib.awtextra.AbsoluteConstraints(10, 90, -1, -1));
jEditPanel.add(jDeletePanel, new
org.netbeans.lib.awtextra.AbsoluteConstraints(190, 30, 130, 140));
jAddPanel.setLayout(new org.netbeans.lib.awtextra.AbsoluteLayout());
jAddPanel.setBorder(new javax.swing.border.TitledBorder("Add/Modify
Option"));
jLabel6.setText("First Name");
jAddPanel.add(jLabel6, new
org.netbeans.lib.awtextra.AbsoluteConstraints(10, 30, -1, -1));
jLabel7.setText("Last Name");
jAddPanel.add(jLabel7, new
org.netbeans.lib.awtextra.AbsoluteConstraints(10, 70, -1, -1));
jLabel8.setText("Gift Requested");
12
jAddPanel.add(jLabel8, new
org.netbeans.lib.awtextra.AbsoluteConstraints(10, 110, -1, -1));
jAddPanel.add(jNameFirstField, new
org.netbeans.lib.awtextra.AbsoluteConstraints(100, 30, 60, -1));
jAddPanel.add(jNameSecondField, new
org.netbeans.lib.awtextra.AbsoluteConstraints(100, 70, 60, -1));
jAddPanel.add(jRequestedGiftField, new
org.netbeans.lib.awtextra.AbsoluteConstraints(100, 110, 60, -1));
jUpdateButton.setText("Update");
jAddPanel.add(jUpdateButton, new
org.netbeans.lib.awtextra.AbsoluteConstraints(210, 20, 80, 110));
jEditPanel.add(jAddPanel, new
org.netbeans.lib.awtextra.AbsoluteConstraints(20, 200, 300, 150));
jScrollPane1.setVerticalScrollBarPolicy(javax.swing.ScrollPaneConstants.VERTICA
L_SCROLLBAR_ALWAYS);
jScrollPane1.setPreferredSize(new java.awt.Dimension(300, 102));
jScrollPane1.setViewport(null);
jDisplayArea.setMinimumSize(new java.awt.Dimension(280, 100));
jDisplayArea.setPreferredSize(new java.awt.Dimension(280, 100));
jScrollPane1.setViewportView(jDisplayArea);
jEditPanel.add(jScrollPane1, new
org.netbeans.lib.awtextra.AbsoluteConstraints(20, 390, -1, 120));
jTabbedPane1.addTab("Edit List", jEditPanel);
getContentPane().add(jTabbedPane1, java.awt.BorderLayout.CENTER);
pack();
}
// </editor-fold>
private void jAddRadioItemStateChanged(java.awt.event.ItemEvent evt) {
// TODO add your handling code here:
displayList( );
if(jAddRadio.isSelected( ))
{
jAddPanel.setVisible(true);
myAddMethod( );
}
else
{
jAddPanel.setVisible(false);
}
}
private void jModifyRadioItemStateChanged(java.awt.event.ItemEvent evt) {
// TODO add your handling code here:
displayList( );
if(jModifyRadio.isSelected( ))
{
jAddPanel.setVisible(true);
myModifyMethod( );
}
else
{
13
jAddPanel.setVisible(false);
}
}
private void jDeleteButtonActionPerformed(java.awt.event.ActionEvent evt) {
myDeleteMethod( );
//jIDtoDeleteField.setText("");
}
private void jDeleteRadioItemStateChanged(java.awt.event.ItemEvent evt) {
// TODO add your handling code here:
displayList( );
if(jDeleteRadio.isSelected( ))
{
jDeletePanel.setVisible(true);
}
else
{
jDeletePanel.setVisible(false);
}
}
private void myDeleteMethod( )
{
readList( );
displayList( );
int item = Integer.parseInt(jIDtoDeleteField.getText( ));
for(int i = 0; i < list.size( ); i++)
{
}
}
private void myAddMethod( )
{
}
private void myModifyMethod( )
{
}
private void readList( )
{
String fileName = "C:\\JavaPrograms\\FileExample\\gifts.txt" ;
String line;
String output = "";
Scanner input;
try
{
input = new Scanner(new File( fileName ));
do
{
line = input.nextLine( );
list.add(line);
output += line + "\n";
} while ( input.hasNextLine( ) );
14
jDisplayArea.setText(output);
input.close();
}
catch ( IOException iox )
{
System.out.println("Problem reading " + fileName );
}
}
private void writeList( )
{
File fileName = new File("C:\\JavaPrograms\\FileExample\\gifts.txt");
PrintWriter outFile;
try
{
outFile = new PrintWriter(new FileWriter(fileName, true));
}
catch (IOException e)
{
System.out.println("Error writing");
return;
}
for(int j = 0; j < list.size( ); j++)
{
outFile.println(list.get(j));
}
outFile.flush( );
outFile.close( );
}
private void displayList( )
{
readList( );
jDisplayArea.setText("");
for(int k = 0; k < list.size( ); k++)
{
jDisplayArea.append((String)list.get(k) + "\n");
}
}
private void jViewButtonActionPerformed(java.awt.event.ActionEvent evt) {
String fileName = "C:\\JavaPrograms\\FileExample\\gifts.txt" ;
String line;
String output = "";
Scanner input;
jListArea.setText("");
try
{
input = new Scanner(new File( fileName ));
do
{
line = input.nextLine( );
output += line + "\n";
} while ( input.hasNextLine( ) );
jListArea.setText(output);
input.close();
}
15
catch ( IOException iox )
{
System.out.println("Problem reading " + fileName );
}
}
private void jPrintButtonActionPerformed(java.awt.event.ActionEvent evt) {
PrintUtilities.printComponent(this);
}
private void jCreateButtonActionPerformed(java.awt.event.ActionEvent evt) {
// TODO add your handling code here:
String fname = jFirstNameField.getText( );
String lname = jLastNameField.getText( );
String gift = jGiftRequestedField.getText( );
File fileName = new File("C:\\JavaPrograms\\FileExample\\gifts.txt");
PrintWriter outFile;
try
{
outFile = new PrintWriter(new FileWriter(fileName, true));
}
catch (IOException e)
{
System.out.println("Error writing");
return;
}
Recipient r = new Recipient(fname, lname, gift);
outFile.println(r);
outFile.flush( );
outFile.close( );
jFirstNameField.setText("");
jLastNameField.setText("");
jGiftRequestedField.setText("");
jFirstNameField.requestFocus( );
}
/**
* @param args the command line arguments
*/
public static void main(String args[]) {
java.awt.EventQueue.invokeLater(new Runnable() {
public void run() {
new GiftListGUI().setVisible(true);
}
});
}
// Variables declaration - do not modify
private javax.swing.ButtonGroup buttonGroup1;
private javax.swing.JPanel jAddPanel;
private javax.swing.JRadioButton jAddRadio;
private javax.swing.JButton jCreateButton;
private javax.swing.JPanel jCreatePanel;
private javax.swing.JButton jDeleteButton;
private javax.swing.JPanel jDeletePanel;
private javax.swing.JRadioButton jDeleteRadio;
private javax.swing.JTextArea jDisplayArea;
private javax.swing.JPanel jEditPanel;
private javax.swing.JTextField jFirstNameField;
private javax.swing.JTextField jGiftRequestedField;
16
private javax.swing.JTextField jIDtoDeleteField;
private javax.swing.JLabel jLabel1;
private javax.swing.JLabel jLabel2;
private javax.swing.JLabel jLabel3;
private javax.swing.JLabel jLabel4;
private javax.swing.JLabel jLabel5;
private javax.swing.JLabel jLabel6;
private javax.swing.JLabel jLabel7;
private javax.swing.JLabel jLabel8;
private javax.swing.JTextField jLastNameField;
private javax.swing.JTextArea jListArea;
private javax.swing.JPanel jMenuPanel;
private javax.swing.JRadioButton jModifyRadio;
private javax.swing.JTextField jNameFirstField;
private javax.swing.JTextField jNameSecondField;
private javax.swing.JButton jPrintButton;
private javax.swing.JPanel jRadioPanel;
private javax.swing.JTextField jRequestedGiftField;
private javax.swing.JScrollPane jScrollPane1;
private javax.swing.JTabbedPane jTabbedPane1;
private javax.swing.JButton jUpdateButton;
private javax.swing.JButton jViewButton;
private javax.swing.JPanel jViewPanel;
// End of variables declaration
}
17
Related documents