日期:2014-05-20  浏览次数:20835 次

want to get help for Button Event
Here is my code for the Button click event. It wants to get the textfield content and prints them into the txt file. I was tring to get the name text field, but when I look at the txt file, it showed me nothing. What' the problem? Could anyone help me?

Below are the code:


package Event;

import java.awt.FlowLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.PrintStream;

import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JTextField;

public class EventSubmit extends JFrame{

public JTextField jtfSerialno = new JTextField();
public JTextField jtfName = new JTextField();
JButton jbt = new JButton("Submit");

public EventSubmit(){
setLayout(new FlowLayout(FlowLayout.CENTER,10,20));

add(new JLabel("Serials Number"));
add(new JTextField(8));
add(new JLabel("Name"));
add(new JTextField(8));

add(jbt);
jbt.addActionListener(new ButtonListener());

}

public class ButtonListener implements ActionListener{
public String name;
public String serialno;

@Override
public void actionPerformed(ActionEvent e) {
// TODO Auto-generated method stub
serialno = jtfSerialno.getText();
name = jtfName.getText();

if (e.getSource() == jbt){

FileOutputStream out; 
PrintStream p;


try {
out = new FileOutputStream("Data.txt");
 p = new PrintStream( out );
 
 p.append(name);
 p.close();

} catch (FileNotFoundException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
}
}

}
public static void main(String[] args) throws Exception{



//System.out.print(name);
EventSubmit frame = new EventSubmit();
frame.setTitle("my layout");
frame.pack();
frame.setSize(400,300);
frame.setLocationRelativeTo(null);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setVisible(true);
}

}

------解决方案--------------------


You can use this code to run about, look at the results, and compared to your code.
public class EventSubmit extends JFrame {

public JTextField jtfSerialno = new JTextField(8);
public JTextField jtfName = new JTextField(8);
JButton jbt = new JButton("Submit");

public EventSubmit() {
setLayout(new FlowLayout(FlowLayout.CENTER, 10, 20));

add(new JLabel("Serials Number"));
add(jtfSerialno);
add(new JLabel("Name"));
add(jtfName);

add(jbt);
jbt.addActionListener(new ButtonListener());

}

public class ButtonListener implements ActionListener {
public String name;
public String serialno;

public void actionPerformed(ActionEvent e) {
// TODO Auto-generated method stub
serialno = jtfSerialno.getText();
name = jtfName.getText();

if (e.getSource() == jbt) {

FileOutputStream out;
PrintStream p;

try {
out = new FileOutputStream("Data.txt");
p = new PrintStream(out);

p.append(name);
p.close();

} catch (FileNotFoundException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
}
}

}

public static void main(String[] args) throws Exception {

// System.out.print(name);
EventSubmit frame = new EventSubmit();
frame.setTitle("my layout");
frame.pack();
frame.setSize(400, 300);
frame.setLocationRelativeTo(null);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setVisible(true);