I have an assignment to create a GUI that has 2 buttons: Add Name and Display File. The add name one is my issue. When I click it, the button never releases, and the window ends up freezing. I've been trying to figure it out for a while with no prevail. I would greatly appreciate any feedback. Thanks!
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
import java.io.*;
import java.io.IOException;
import java.io.FileReader;
import java.io.PrintWriter;
public class NameReader extends JFrame
{
private JLabel nameL;
private JTextField nameTF;
private JButton dFileB, addNameB;
private DisplayFileHandler dfHandler;
private AddNameHandler anHandler;
private static final int WIDTH = 400;
private static final int HEIGHT = 200;
public void name()
{
nameL = new JLabel("Enter name: ");
nameTF = new JTextField(15);
dFileB = new JButton("Display File");
dfHandler = new DisplayFileHandler();
dFileB.addActionListener(dfHandler);
addNameB = new JButton("Add Name");
anHandler = new AddNameHandler();
addNameB.addActionListener(anHandler);
setTitle("Display or Add Names");
Container pane = getContentPane();
pane.setLayout(new GridLayout(5,2));
pane.add(nameL);
pane.add(nameTF);
pane.add(dFileB);
pane.add(addNameB);
setSize(WIDTH, HEIGHT);
setVisible(true);
setDefaultCloseOperation(EXIT_ON_CLOSE);
}
private class DisplayFileHandler implements ActionListener
{
public void actionPerformed(ActionEvent e)
{
try{
FileReader inFile = new FileReader("input.txt.txt");
BufferedReader br = new BufferedReader(inFile);
String name= br.readLine(), str="";
while(name!=null)
{
str+= name + "\n";
name= br.readLine();
}
JOptionPane.showMessageDialog(null, str, "Names", JOptionPane.PLAIN_MESSAGE);
System.exit(0);
}
catch (IOException ex)
{
JOptionPane.showMessageDialog(null, "File not found.", "Error", JOptionPane.PLAIN_MESSAGE);
}
}
}
private class AddNameHandler implements ActionListener
{
public void actionPerformed(ActionEvent e)
{
try
{
String name= nameTF.getText();
FileReader inFile = new FileReader("input.txt.txt");
PrintWriter outFile = new PrintWriter("output.txt");
BufferedReader br = new BufferedReader(inFile);
String message="", names= br.readLine();
String last, last1;
while(names!= null)
{
last= names.substring(names.indexOf(" "), names.length()-1);
last1= name.substring(name.indexOf(" "), name.length()-1);
if(last1.compareTo(last)>0)
{
outFile.println(name + "\n");
outFile.println(name + "\n");
message+= name + "\n";
message+= names + "\n";
}
else
{
outFile.println(names + "\n");
message+= names + "\n";
names= br.readLine();
}
}
JOptionPane.showMessageDialog(null, message, "Names", JOptionPane.PLAIN_MESSAGE);
System.exit(0);
}
catch (IOException ex)
{
JOptionPane.showMessageDialog(null, "File not found.", "Error", JOptionPane.PLAIN_MESSAGE);
}
}
}
public static void main(String[]args)
{
NameReader read = new NameReader();
read.name();
}
}

New Topic/Question
Reply



MultiQuote



|