-2
程序的
import java.io.*;
import java.awt.event.*;
import javax.swing.*;
import java.awt.*;
import java.util.*;
public class two extends JFrame implements ActionListener
{
JLabel l1,l2;
JTextArea a1,a2;
JButton b1;
JMenuBar bar;
JMenu menu;
JMenuItem m1,m2;
JPanel p;
ArrayList<String> a;
DataOutputStream d1;
// GUI部數據輸出流不工作
public void go()
{
p=new JPanel();
bar=new JMenuBar();
menu=new JMenu("File");
m1=new JMenuItem("Save");
m1.addActionListener(this);
m2=new JMenuItem("New");
menu.add(m1);
menu.add(m2);
Font f=new Font("Arial",Font.BOLD,16);
l1=new JLabel("Question ");
l1.setAlignmentX(CENTER_ALIGNMENT);
l1.setFont(f);
l2=new JLabel("Answer");
l2.setFont(f);
l2.setAlignmentX(RIGHT_ALIGNMENT);
a1=new JTextArea(10,50);
JScrollPane a4 = new JScrollPane(a1);
a4.setHorizontalScrollBarPolicy(ScrollPaneConstants.HORIZONTAL_SCROLLBAR_ALWAYS);
a4.setMaximumSize(new Dimension(600,220));
a4.setAlignmentX(CENTER_ALIGNMENT);
a2=new JTextArea(10,50);
JScrollPane a3 = new JScrollPane(a2);
a3.setHorizontalScrollBarPolicy(ScrollPaneConstants.HORIZONTAL_SCROLLBAR_ALWAYS);
a3.setMaximumSize(new Dimension(600,220));
a3.setAlignmentX(CENTER_ALIGNMENT);
b1=new JButton("Next Card");
b1.setAlignmentX(LEFT_ALIGNMENT);
b1.addActionListener(this);
bar.add(menu);
setJMenuBar(bar);
BoxLayout g=new BoxLayout(p,BoxLayout.Y_AXIS);
p.setLayout(g);
p.add(l1);
p.add(Box.createRigidArea(new Dimension(15,15)));
p.add(a4);
p.add(Box.createRigidArea(new Dimension(15,15)));
p.add(l2);
p.add(Box.createRigidArea(new Dimension(15,15)));
p.add(a3);
p.add(Box.createRigidArea(new Dimension(25,25)));
p.add(b1);
getContentPane().add(p);
setVisible(true);
setSize(500,600);
setResizable(false);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
public static void main(String[] args) {
two obj=new two();
obj.go();
}
public void actionPerformed(ActionEvent e)
{
a=new ArrayList<String>();
其中文本區域中的內容被保存到listarray
if(e.getSource()==b1)
{
String l=new String(a1.getText()+"/");
String w=new String (a2.getText()+"\n");
a.add(l);
a.add(w);
//添加值
//部分如列表所示由a.size()表示的數組列表()
System.out.println(a.size());
a1.setText("");
a2.setText("");
}
//方法使用使用FileChooser
if(e.getSource()==m1){
JFileChooser fileSave = new JFileChooser();
int retrival=fileSave.showSaveDialog(this);
File d=fileSave.getSelectedFile();
if (retrival == JFileChooser.APPROVE_OPTION) {
try{
System.out.println(d);
listarray保存到文件//這部分不被稱爲
d1=new DataOutputStream(new FileOutputStream(d+".txt");
for(String o:a)
{
d1.writeChars(o);
System.out.println("\nIS SUCCESFULLY WRITTEN INTO FILE!");
}
d1.close();
}catch(Exception ex){System.out.println(ex);}
}
}
}
}
內容有遺漏非常重要:一個問題。 – mthmulders
您不會安全地關閉您的資源;你應該分別創建兩個輸出並在finally塊中關閉它們;或者只是使用'FileWriter',因爲你好像在寫文本。或者甚至更好,使用番石榴,使用「Closer」。 – fge
爲了更快得到更好的幫助,請發佈[SSCCE](http://sscce.org/)。 –