使用JavaGUI swing,在使用JFileChooser之后,如何在JLabel中显示文本文件?
我尝试了各种方法来解决这个问题,包括创建方法FileOpener或public void FileOpener的对象,但似乎出现了各种错误。有人请提供一个解决方案,没有太长或复杂的代码。菜单栏起作用,ActionListener用于为JMenuItem的单击提供支持。标签将被添加到面板中,并应显示文本文件的内容,但不起作用。“加载”菜单项和“退出”菜单项工作正常
import java.util.Scanner;
import java.io.*;
import javax.swing.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JFileChooser;
import javax.swing.JFrame;
import javax.swing.JMenu;
import javax.swing.JMenuBar;
import javax.swing.JMenuItem;
import javax.swing.JOptionPane;
public class GraphDisplay
{
public GraphDisplay()
{
gui();
FileOpener();
}
public void gui()
{
JFrame jf = new JFrame("Ethnic diversity Graph");
//Creates a constructor for JFrame.
FileOpener();
JMenuBar bar = new JMenuBar();
jf.setJMenuBar(bar);
JMenu file = new JMenu("File");
bar.add(file);
JMenuItem load = new JMenuItem("Load");
file.add(load);
load.addActionListener(new LoadClick());
JMenuItem exit = new JMenuItem("Exit");
file.add(exit);
exit.addActionListener(new ExitClick());
JMenu help = new JMenu("Help");
bar.add(help);
JMenuItem guide = new JMenuItem("User Guide");
help.add(guide);
JMenuItem about = new JMenuItem("About");
help.add(about);
about.addActionListener(new AboutClick());
JPanel jpOne = new JPanel();
JLabel output = new JLabel();
jf.add(jpOne);
jpOne.add(output);
jf.setVisible(true);
jf.setSize(800, 600);
jf.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}//void gui end
public void FileOpener()
{
JFileChooser chooser = new JFileChooser();
int status = chooser.showOpenDialog(null);
try{
if (status != JFileChooser.APPROVE_OPTION){
// Error
}else
{
File file = chooser.getSelectedFile();
Scanner scan = new Scanner(file);
String info = "";
while (scan.hasNext()){
info += scan.nextLine() + "\n";
}
}
}catch(Exception e){
}
}
public static void main(String[] args)
{
new GraphDisplay();
}//main end
class ExitClick implements ActionListener
{
public void actionPerformed(ActionEvent e)
{
System.exit(0);
}
}//ExitClick end
class AboutClick implements ActionListener
{
public void actionPerformed(ActionEvent e)
{
JOptionPane.showMessageDialog(null, "This program is used to show graph from user's text file", "About", JOptionPane.INFORMATION_MESSAGE);
}
}//AboutClick end
class LoadClick implements ActionListener
{
public void actionPerformed(ActionEvent e)
{
FileOpener();
}
}//AboutClick end
}//class end
多谢各位
共 (0) 个答案