I got the variables of the textfile to add to the jtable, now how can I add the
ID: 3836809 • Letter: I
Question
I got the variables of the textfile to add to the jtable, now how can I add the variables to the textfile after I add a new employee to the jtable??
package project;
import employee.EmployeeTable;
import employee.EmployeeTableList;
import employee.Node;
import java.awt.Toolkit;
import java.awt.event.WindowEvent;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.nio.file.Paths;
import java.util.Date;
import java.util.Formatter;
import java.util.FormatterClosedException;
import java.util.Scanner;
import javax.swing.table.DefaultTableModel;
/**
*
* @author Danielle
*/
public class EmployeeForm extends javax.swing.JFrame {
private static EmployeeTable list;
private static Scanner input;
private static Formatter output;
public EmployeeForm() {
initComponents();
readEmployeeTable();
//list.add("one", "dani", "female", "232", "id", "phone", "email","1/2/12", "2/2/22");
// System.out.println("Size: "+list.size());
System.out.println("Last Name First Gender SSN emplyID phone email startdate enddate");
list.sortEmplyID();
// Search example through list for certain value
// System.out.println("Size: "+list.size());
// System.out.println("Last Name First Gender SSN emplyID phone email startdate enddate");
list.sortEmplyID();
// Search example through list for certain value
Node nodeptr = list.getHead();
for (int i = 0; i < list.size(); i++) {
DefaultTableModel model=(DefaultTableModel) EmployeeTable1.getModel();{
Object[]newRowData={nodeptr.getEmplyID(), nodeptr.getLastName(),nodeptr.getFirstName(),nodeptr.getGender(),nodeptr.getPhone(),nodeptr.getEmail(),nodeptr.getHireDate(),nodeptr.getEndDate(),nodeptr.getSSN()};
model.addRow(newRowData);
nodeptr = nodeptr.getNext();
}
}}
//nodeptr.getEmplyID(),nodeptr.getLastName(),nodeptr.getFirstName(),nodeptr.getGender(),nodeptr.getPhone(),nodeptr.getEmail(),nodeptr.getHireDate(),nodeptr.getEndDate(),nodeptr.getSSN());
/*
private boolean verifyDates(Date hireDate, Date endDate){
{ if (hireDate.compareTo(endDate) < 0)
return true;
return false; }
Date chosenHireDate = hireDate.getDate();
String hire = String.format("%1$tm/%1$td/%1$tY", chosenHireDate);
if (hire.equals("null/null/null"))
{ message.setText("No Hire Date was selected.");
return; }
hireDate.setDate(null); // clears JCalendar field
}
*/
public static void openFile(String filename){
try {
input = new Scanner(Paths.get(filename));
}
catch(IOException e){
System.err.println("Error opening file.");
System.out.println("e.getMessage");
System.exit(1);
}
}
private static void readEmployeeTable() {
// create Employee List
list = new EmployeeTable();
// Open Employees.txt file and read each line into an array
openFile("Employees.txt");
while (input.hasNext()) {
list.add(input.next(), input.next(), input.next(), input.next(), input.next(), input.next(), input.next(), input.next(), input.next());
}
}
public static void closeEmployee() {
try {
output = new Formatter("Employees.txt");
} catch (SecurityException securityException) {
System.err.println("Write permission denied. Terminating.");
System.exit(1);
} catch (FileNotFoundException fileNotFoundException) {
System.err.println("Error opening file. Terminating.");
System.exit(1);
}
Node eptr = EmployeeTableList.list.getHead();
for (int i = 0; i < EmployeeTableList.list.size(); i++) {
try {
//DefaultTableModel model=(DefaultTableModel) EmployeeTable1.getModel();{
output.format("%s %s %s %s %s %s %s %s %s%n",eptr.getEmplyID(),eptr.getLastName(),eptr.getFirstName(),eptr.getGender(),eptr.getPhone(),eptr.getEmail(),eptr.getHireDate(),eptr.getEndDate(),eptr.getSSN());
eptr = eptr.getNext();
} catch (FormatterClosedException formatterClosedException) {
System.err.println("Error writing to Employees file. Terminating.");
break;
}
}
if (output !=null){
output.close();
}
}
public void closeForm(){
WindowEvent winClosingEvent = new WindowEvent(this,WindowEvent.WINDOW_CLOSING);
Toolkit.getDefaultToolkit().getSystemEventQueue().postEvent(winClosingEvent);
}
DefaultTableModel model=(DefaultTableModel) EmployeeTable1.getModel();{
String gender = null;
if (male.isSelected()){ gender="Male";}
if(female.isSelected()){ gender="Female";}
if(!emplyID.getText().trim().equals("")) {
//readEmployeeTable();
//list.add(emplyID.getText(), lastName.getText(), firstName.getText(), gender , phone.getText(), email.getText(),hireDate.getDate().toString(), endDate.getDate().toString(), ssn.getText());
//create row object and add data into object
Object[]newRowData={emplyID.getText(),lastName.getText(),firstName.getText(), gender,phone.getText() ,email.getText(), hireDate.getDate().toString(), endDate.getDate().toString(), ssn.getText()};
//add row to table for display
model.addRow(newRowData);
//list.add(emplyID.getText(), lastName.getText(), firstName.getText(), gender , phone.getText(), email.getText(),hireDate.getDate().toString(), endDate.getDate());
//clear data
emplyID.setText("");
lastName.setText("");
firstName.setText("");
ssn.setText("");
phone.setText("");
email.setText("");
}
else{
Message.setText("Employee ID should not be left blank");
}
}
}
Explanation / Answer
For reading from the text file you can use the below code.
String line="";
DefaultTableModel model=(DefaultTableModel) EmployeeTable1.getModel()
BufferedReader reader;
try{
reader=new BufferedReader(new FileReader("employees.txt"))
while ((line = reader.readLine()) != null) {
data = new Vector();
//use string tokenizer to separate the text data
StringTokenizer st1 = new StringTokenizer(line, ","); //text data will be iterated through comma (,) you can specify //based on your text file data
data.add(nextToken);
//System.out.println(nextToken);
}
System.out.println(data);
model.addRow(data);
reader.close();
catch (Exception e) {
e.printStackTrace();
}
}
Related Questions
Navigate
Integrity-first tutoring: explanations and feedback only — we do not complete graded work. Learn more.