我正在尝试从B类编写CSV文件。但是,jTextField(在A类中)只是没有输出到创建的CSV文件。我需要帮助/步骤/提示。
编辑:现在符合。
A类
public class ClassA extends javax.swing.JFrame {
public ClassA() {
initComponents();
}
private void initComponents() {
JMenuBar menuBar = new JMenuBar();
setJMenuBar(menuBar);
jTextField1 = new JTextField();
JMenu aFile = new JMenu("File");
JMenuItem saveFile = new JMenuItem ("Save...");
menuBar.add(aFile);
aFile.add(saveFile);
saveFile.addActionListener(new java.awt.event.ActionListener(){
@Override
public void actionPerformed(ActionEvent e) {
// TODO Auto-generated method stub
ClassB ss = new ClassB();
try {
ss.saveAsTable();
} catch (IOException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
}
});
}
public static void main(String args[]) {
java.awt.EventQueue.invokeLater(new Runnable() {
public void run() {
new ClassA().setVisible(true);
}
});
}
protected static javax.swing.JTextField jTextField1;
}
B类
public class ClassB extends ClassA{
/**
*
*/
public ClassB() {}
public void saveAsTable() throws IOException {
JFileChooser sat = new JFileChooser();
FileNameExtensionFilter filter = new FileNameExtensionFilter(
"CSV files (*csv)", "csv");
sat.setFileFilter(filter);
int ret = sat.showSaveDialog(null);
if (ret == JFileChooser.APPROVE_OPTION) {
File f = sat.getSelectedFile();
FileWriter out = new FileWriter(f);
out.write(jTextField1.getText() + ",");//This doesn't work...
out.close();
}
}
答案 0 :(得分:2)
你永远不会将你的jtextfield1
添加到你的框架中,因为你的继承方式非常危险。
在ClassA构造函数的某些部分添加此行。
this.add(jtextField1);
您正在actionPerformed
另一个ClassA
saveFile.addActionListener(new java.awt.event.ActionListener(){
@Override
public void actionPerformed(ActionEvent e) {
// TODO Auto-generated method stub
ClassB ss = new ClassB();
try {
ss.saveAsTable();
} catch (IOException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
}
});
这种情况正在发生,因为ss
它是ClassB
,而且是Class A
,所以这段代码。
答案 1 :(得分:-1)
请更详细地解释一下,然后有人/我可以帮助你。
编辑:很难看到您正在尝试做什么,但是,如果您需要保存打开文件,请查看JFileChooser
(http://docs.oracle.com/javase/tutorial/uiswing/components/filechooser.html)
Edit2:将texfield中的文本放入字符串:String yourtext = JTextField1.getText();