0
jlist의 사용자 입력을 txt 파일로 저장하는 방법을 찾고 있습니다. 그것은 숙제 프로젝트를위한 것입니다. 필자는 텍스트 필드에서 사용자 입력을 받아들이도록 프로그램을 설정 한 다음 추가 버튼을 누르면 jlist로 이동합니다. jlist에는 defaultlist 모델이 있으며 저장 버튼을 만들고 완전한 jlist를 .txt 파일로 저장할 수 있는지 궁금합니다. 지금의 생성 및 오픈 파일이jList 데이터를 txt 파일에 저장하는 방법은 무엇입니까?
File file = new File("c:/test/myfile.txt");
에 목록을 저장하는 파일의 클래스를 사용할 필요가
import java.awt.BorderLayout;
import java.awt.EventQueue;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.border.EmptyBorder;
import javax.swing.DefaultListModel;
import javax.swing.JOptionPane;
import javax.swing.JTextField;
import javax.swing.JButton;
import javax.swing.JList;
import javax.swing.border.LineBorder;
import java.awt.Color;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.util.ArrayList;
import javax.swing.JComboBox;
import javax.swing.JProgressBar;
import javax.swing.JLabel;
public class i extends JFrame {
private JPanel contentPane;
private JTextField jTextField;
DefaultListModel ListModel = new DefaultListModel();
ArrayList<String> arr = new ArrayList <String>();
String str;
/**
* Launch the application.
*/
public static void main(String[] args) {
EventQueue.invokeLater(new Runnable() {
public void run() {
try {
i frame = new i();
frame.setVisible(true);
} catch (Exception e) {
e.printStackTrace();
}
}
});
}
/**
* Create the frame.
*/
public i() {
super("List");
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setBounds(100, 100, 450, 300);
contentPane = new JPanel();
contentPane.setBorder(new EmptyBorder(5, 5, 5, 5));
setContentPane(contentPane);
contentPane.setLayout(null);
jTextField = new JTextField();
jTextField.setBounds(15, 80, 168, 20);
contentPane.add(jTextField);
jTextField.setColumns(10);
final JList jList = new JList(ListModel);
jList.setBorder(new LineBorder(new Color(0, 0, 0)));
jList.setBounds(289, 54, 135, 197);
contentPane.add(jList);
JButton jButton = new JButton("Add");
jButton.setBounds(190, 79, 89, 23);
contentPane.add(jButton);
jButton.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e) {
String str=jTextField.getText();
ListModel.addElement(str);
jTextField.setText("");
arr.add(str);
System.out.println(arr);
}
});
JButton delete = new JButton("DELETE");
delete.setBounds(190, 162, 89, 23);
contentPane.add(delete);
delete.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent k){
ListModel.removeElement(jList.getSelectedValue());
}
});
JButton btnUp = new JButton("UP");
btnUp.setBounds(190, 125, 89, 23);
contentPane.add(btnUp);
btnUp.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e){
int index = jList.getSelectedIndex();
if(index == -1){
JOptionPane.showMessageDialog(null, "Select something to move.");
} else if(index > 0) {
String temp = (String)ListModel.remove(index);
ListModel.add(index - 1, temp);
jList.setSelectedIndex(index -1);
}
}
});
JButton btnDown = new JButton("DOWN");
btnDown.setBounds(190, 196, 89, 23);
contentPane.add(btnDown);
btnDown.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e){
int index = jList.getSelectedIndex();
if(index == -1)
JOptionPane.showMessageDialog(null, "Select something to move.");
else if(index < ListModel.size() - 1){
String temp = (String)ListModel.remove(index);
ListModel.add(index + 1, temp);
jList.setSelectedIndex(index + 1);
}
}
});
JLabel lblItems = new JLabel("Items:");
lblItems.setBounds(290, 37, 46, 14);
contentPane.add(lblItems);
JButton btnPrint = new JButton("PRINT");
btnPrint.setBounds(190, 228, 89, 23);
contentPane.add(btnPrint);
btnPrint.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e){
}
});
}
}
이 질문은 너무 광범위합니다. 이게 너를 괴롭히는 부분 이니? 버튼 만들기? 단추에 ActionListener 추가? JList에서 데이터 가져 오기? 데이터를 텍스트 파일에 저장 하시겠습니까? 다른 것? 지금까지 뭐 해봤 어? 귀하의 [MCVE] (http://stackoverflow.com/help/mcve)는 어디에 있습니까? –
@KevinWorkman 사과드립니다. jlist에서 데이터를 가져 와서 텍스트 파일로 가져 오는 방법을 알아 내는데 어려움이 있습니다. 나는 다른 웹 사이트 및 다른 질문을보고 행운이 없었다. – engz
작은 단계로 문제를 해결하십시오. 하드 코드 된 문자열을 파일에 쓰는 독립 실행 형 프로그램을 작성할 수 있습니까? JList의 내용을 콘솔에 출력하는 다른 독립 실행 형 프로그램을 작성할 수 있습니까? 두 프로그램이 따로 작동하면 프로그램을 결합하는 방법에 대해 생각할 수 있습니다. 전체 목표에 대해 게시하는 것보다 특정 단계에 대해 게시하는 것이 더 좋습니다. –