Java 正在尝试将.txt文件加载到JFrame(JFileChooser)
所以我在大学里试着做一个JFrame作业,我试着通过JFileChooser加载一个.txt文件,让文件中的文本显示在这个JFrame中的几个jTextField中。现在它不起作用了,而且我从课堂上得到的所有信息,我都找不到解决这个问题的方法 下面是完整的代码,我尝试使用的特定部分是案例:“Load”部分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
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);
}
}
}
共享最少的可测试代码。共享代码中存在大量编译错误。扫描仪代码的意义是什么?您检查文件是否有输入,但从未从文件中读取任何内容。为什么所有其他代码都在扫描循环中。什么是母鹿