簡體   English   中英

創建一個.txt文件,將其從JList中填充

[英]Create a .txt file populating it from a JList

是否可以在.txt文件中寫入JList的內容? 如果可以的話,您可以給我樣品嗎? 謝謝

JList不是數據結構,而是顯示組件。

您應該將內容包含在ListModel中,並且如果該模型的元素是簡單的Strings(或易於轉換為Strings的內容),則當然可以將其寫入文本文件中。

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();
    }
}

列表有一個模型,而模型有數據。 您只需要將該數據寫入文件即可:

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

這是一個作業問題嗎?
無論如何,可以從JList中使用以下方法,盡管我確信它不是執行它的最佳方法,但它應該可以工作
list是一個JList

list.setSelectedIndex(int index); //設置一個選擇
list.getSelectedValue(); //返回對象

要么

list.setSelectedIndices(int [] index); //設置多個選擇
list.getSelectedValues(); //返回對象[]中的所有選定值

用於編寫/閱讀/刪除/創建的閱讀

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM