创建一个从JList填充它的.txt文件

时间:2011-03-08 22:07:31

标签: java swing jlist

是否可以在.txt文件中写入JList的内容? 如果有可能,你能给我一个样品吗? 感谢

3 个答案:

答案 0 :(得分:2)

JList不是数据结构,而是显示组件。

你应该在ListModel中拥有内容,如果这个模型的元素是简单的字符串(或者很容易转换为字符串的东西,你当然可以在文本文件中写它。

public static void exportList(ListModel model, File f) throws IOException {
    PrintWriter pw = new PrintWriter(new OutputStreamWriter(new FileOutputStream(f), "UTF-8"));
    try {
        int len = model.getSize();
        for (int i = 0; i < len; i++) {
            pw.println(model.getElementAt(i).toString());
        }
    } finally {
        pw.close();
    }
}

答案 1 :(得分:0)

列表包含模型,模型包含数据。您只需将该数据写入文件:

import javax.swing.*;
import java.awt.BorderLayout;
import java.awt.event.*;
import java.io.PrintStream;
import java.io.FileOutputStream;
import java.io.FileNotFoundException;
class ListDemo {
    public static void main( String ... args ) throws FileNotFoundException {
        // The data
        final Object [] data = {"A","B","C"};


        // Put it in the frame 
        JFrame frame = new JFrame();
        frame.add( new JScrollPane( new JList( data )));
        // write to a file  
        final PrintStream out = new PrintStream(new FileOutputStream("datos.txt"));
        frame.add( new JButton("Print"){{
            addActionListener( new ActionListener() {
                public void actionPerformed( ActionEvent e ) {
                    for( Object d : data ) { 
                            out.println( d );
                    }
                }
            });
        }}, BorderLayout.SOUTH);
        frame.pack();
        frame.setVisible( true );
    }
}

这只是一个样本。您必须创建我们自己的列表模型,并使用您自己的数据填充它。

此外,我不是在这里关闭文件。

要了解有关JList的更多信息,请阅读:

http://download.oracle.com/javase/tutorial/uiswing/components/list.html

在此处了解有关流的更多信息:

http://download.oracle.com/javase/tutorial/essential/io/charstreams.html

答案 2 :(得分:-1)

这是一个家庭作业问题吗? 无论如何是可以从JList中你可以使用以下方法,虽然我确定它不是最好的方法,它应该工作
其中list是JList

  

list.setSelectedIndex(int index); //设置一个选择
      list.getSelectedValue(); //返回Object

  

list.setSelectedIndices(int [] indices); //设置多个选择
      list.getSelectedValues(); //返回Object []

中的所有选定值

用于书写/阅读/删除/创建阅读this

相关问题