Java 正在尝试将.txt文件加载到JFrame(JFileChooser)

Java 正在尝试将.txt文件加载到JFrame(JFileChooser),java,swing,Java,Swing,所以我在大学里试着做一个JFrame作业,我试着通过JFileChooser加载一个.txt文件,让文件中的文本显示在这个JFrame中的几个jTextField中。现在它不起作用了,而且我从课堂上得到的所有信息,我都找不到解决这个问题的方法 下面是完整的代码,我尝试使用的特定部分是案例:“Load”部分 package assignment3; import java.awt.*; import java.awt.event.ActionEvent; import java.awt.event

所以我在大学里试着做一个JFrame作业,我试着通过JFileChooser加载一个.txt文件,让文件中的文本显示在这个JFrame中的几个jTextField中。现在它不起作用了,而且我从课堂上得到的所有信息,我都找不到解决这个问题的方法

下面是完整的代码,我尝试使用的特定部分是案例:“Load”部分

package assignment3;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileWriter;
import java.io.IOException;
import java.io.PrintWriter;
import java.util.ArrayList;
import java.util.Scanner;
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.swing.*;

public class SocialMediaList extends JFrame {

private JPanel display;
private JLabel siteNameLabel;
private JTextField siteName;
private JLabel userIDLabel;
private JTextField userID;
private JLabel contactsLabel;
private JTextField contacts;

private JPanel btns;
private JButton loadBtn;
private JButton addBtn;
private JButton saveBtn;
private JButton exitBtn;

private JPanel list;
private JList myList;

private ArrayList<SocialMedia> mediaList;

public SocialMediaList() {

    mediaList = new ArrayList();
    myList = new JList(mediaList.toArray());

    this.setLayout(new GridLayout(2,1,5,5));

    display = new JPanel();
    display.setLayout(new GridLayout(5,2,5,5));

    siteNameLabel = new JLabel("  Site Name: ");
    siteName = new JTextField(10);
    userIDLabel = new JLabel("  User ID: ");
    userID = new JTextField(10);
    contactsLabel = new JLabel("  No. of Contacts: ");
    contacts = new JTextField(10);

    display.add(siteNameLabel);
    display.add(siteName);
    display.add(userIDLabel);
    display.add(userID);
    display.add(contactsLabel);
    display.add(contacts);

    this.add(display);

    btns = new JPanel();
    btns.setLayout(new GridLayout(1,3,5,5));

    loadBtn = new JButton("Load");
    loadBtn.setActionCommand("Load");
    addBtn = new JButton("Add");
    saveBtn = new JButton("Save");
    exitBtn = new JButton("Exit");

    btns.add(loadBtn);
    btns.add(addBtn);
    btns.add(saveBtn);
    btns.add(exitBtn);

    this.add(btns);

    list = new JPanel();
    list.setLayout(new FlowLayout());
    JScrollPane myScrollPane = new JScrollPane(myList);
    list.add(myScrollPane);

    setLayout(new BorderLayout());
    this.add(display,BorderLayout.NORTH);
    this.add(btns,BorderLayout.CENTER);
    this.add(list,BorderLayout.SOUTH);

    ButtonListeners buttonListener = new ButtonListeners();
    loadBtn.addActionListener(buttonListener);
    addBtn.addActionListener(buttonListener);
    saveBtn.addActionListener(buttonListener);
    exitBtn.addActionListener(buttonListener);
}

public static void main(String[] args) {
    SocialMediaList list = new SocialMediaList();
    list.setTitle("Assignment #3");
    list.setSize(600,350);
    list.setLocationRelativeTo(null);
    list.setVisible(true);
    list.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}

class ButtonListeners implements ActionListener {

    @Override
    public void actionPerformed(ActionEvent e) {
        switch(e.getActionCommand()) {

            case "Load":
                File file;
                try {

                    JFileChooser chooser = new JFileChooser();

                    if (chooser.showOpenDialog(null) == JFileChooser.APPROVE_OPTION) {

                        file = chooser.getSelectedFile();

                        Scanner input = new Scanner(file);

                        while (input.hasNextLine()) {
                            SocialMedia account = mediaList.get(myList.getSelectedIndex());
                            siteName.setText(account.getSiteName());
                            userID.setText(account.getUserID());
                            contacts.setText(String.valueOf(account.getContacts()));

                            myList.setListData(mediaList.toArray());
                            add(siteName);
                            add(userID);
                            add(contacts);

                            if (mediaList.size() > 0) {
                                myList.setSelectedIndex(0);
                            }
                        }


                    }

                } catch (FileNotFoundException ex) {
                    Logger.getLogger(SocialMediaList.class.getName()).log(Level.SEVERE, null, ex);
                }


            case "Add": 
                String s = siteName.getText();
                String u = userID.getText();
                int c = Integer.valueOf(contacts.getText());
                SocialMedia mySocialMedia = new SocialMedia();
                mySocialMedia.setSiteName(s);
                mySocialMedia.setUserID(u);
                mySocialMedia.setContacts(c);

                mediaList.add(mySocialMedia);
                myList.setListData(mediaList.toArray());
                break;

            case "Save":
        try {
            FileWriter writer = new FileWriter("socialMedia2.txt");
            writer.write(mediaList.toString());
            writer.write(myList.toString());
            writer.close();
        } catch (IOException ex) {
            Logger.getLogger(SocialMediaList.class.getName()).log(Level.SEVERE, null, ex);
        }

            case "Exit":
                System.exit(0);
        }
    }
}

class ExitListener implements ActionListener {

    @Override
    public void actionPerformed(ActionEvent e) {
        System.exit(0);
    }
}
}
包分配3;
导入java.awt.*;
导入java.awt.event.ActionEvent;
导入java.awt.event.ActionListener;
导入java.io.File;
导入java.io.FileNotFoundException;
导入java.io.FileWriter;
导入java.io.IOException;
导入java.io.PrintWriter;
导入java.util.ArrayList;
导入java.util.Scanner;
导入java.util.logging.Level;
导入java.util.logging.Logger;
导入javax.swing.*;
公共类社会中介扩展JFrame{
私人JPanel显示器;
专用JLabel站点名称标签;
私有JTextField站点名;
私有JLabel userIDLabel;
私有JTextField用户标识;
私人JLabel联系人slabel;
私人现场联系人;
私人JPanel基站;
私有JButton loadBtn;
私有JButton addBtn;
私有JButton saveBtn;
私人按钮出口;
私人JPanel列表;
私人JList myList;
私有ArrayList媒体列表;
公共社会中介人(){
mediaList=新的ArrayList();
myList=newjlist(mediaList.toArray());
这个.setLayout(新的GridLayout(2,1,5,5));
display=newjpanel();
display.setLayout(新的GridLayout(5,2,5,5));
siteNameLabel=新的JLabel(“站点名称:”);
siteName=新的JTextField(10);
userIDLabel=newjlabel(“用户ID:”);
userID=新的JTextField(10);
contactsLabel=新的JLabel(“联系人数量:”);
联系人=新的JTextField(10);
显示.添加(siteNameLabel);
display.add(siteName);
display.add(userIDLabel);
display.add(userID);
显示。添加(contactsLabel);
显示。添加(联系人);
添加(显示);
btns=新的JPanel();
基站设置布局(新网格布局(1,3,5,5));
loadBtn=新的JButton(“加载”);
loadBtn.setActionCommand(“加载”);
addBtn=新按钮(“添加”);
saveBtn=新的JButton(“Save”);
exitBtn=新的JButton(“退出”);
添加(loadBtn);
添加(addBtn);
添加(saveBtn);
基站添加(exitBtn);
添加(BTN);
list=newjpanel();
list.setLayout(新的FlowLayout());
JScrollPane mycrollpane=新的JScrollPane(myList);
list.add(myScrollPane);
setLayout(新的BorderLayout());
添加(显示,BorderLayout.NORTH);
添加(BTN,BorderLayout.CENTER);
添加(列表,BorderLayout.SOUTH);
ButtonListeners buttonListener=新建ButtonListeners();
loadBtn.addActionListener(按钮Listener);
addBtn.addActionListener(按钮Listener);
saveBtn.addActionListener(按钮Listener);
exitBtn.addActionListener(按钮Listener);
}
公共静态void main(字符串[]args){
社交媒体列表=新社交媒体列表();
列表。设置标题(“任务3”);
列表。设置大小(600350);
list.setLocationRelativeTo(空);
list.setVisible(true);
list.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
类ButtonListeners实现ActionListener{
@凌驾
已执行的公共无效操作(操作事件e){
开关(如getActionCommand()){
案例“荷载”:
文件;
试一试{
JFileChooser chooser=新的JFileChooser();
if(chooser.showOpenDialog(null)=JFileChooser.APPROVE\u选项){
file=chooser.getSelectedFile();
扫描仪输入=新扫描仪(文件);
while(input.hasNextLine()){
SocialMedia account=mediaList.get(myList.getSelectedIndex());
siteName.setText(account.getSiteName());
userID.setText(account.getUserID());
contacts.setText(String.valueOf(account.getContacts());
myList.setListData(mediaList.toArray());
添加(站点名称);
添加(用户标识);
添加(联系人);
如果(mediaList.size()>0){
myList.setSelectedIndex(0);
}
}
}
}捕获(FileNotFoundException ex){
Logger.getLogger(SocialMediaList.class.getName()).log(Level.SEVERE,null,ex);
}
案例“添加”:
字符串s=siteName.getText();
字符串u=userID.getText();
int c=Integer.valueOf(contacts.getText());
SocialMedia mySocialMedia=新的SocialMedia();
mySocialMedia.setSiteName;
mySocialMedia.setUserID(u);
mySocialMedia.setContacts(c);
mediaList.add(mySocialMedia);
myList.setListData(mediaList.toArray());
打破
案例“保存”:
试一试{
FileWriter=newfilewriter(“socialMedia2.txt”);
write.write(mediaList.toString());
writer.write(myList.toString());
writer.close();
}捕获(IOEX异常){
Logger.getLogger(SocialMediaList.class.getName()).log(Level.SEVERE,null,ex);
}
案例“退出”:
系统出口(0);
}
}
}
类ExitListener实现ActionListener{
@凌驾
已执行的公共无效操作(操作事件e){
系统出口(0);
}
}
}

共享最少的可测试代码。共享代码中存在大量编译错误。扫描仪代码的意义是什么?您检查文件是否有输入,但从未从文件中读取任何内容。为什么所有其他代码都在扫描循环中。什么是母鹿