尝试在 GUI 中使用文件捕获 java

Posted

技术标签:

【中文标题】尝试在 GUI 中使用文件捕获 java【英文标题】:try and catch java with files in a GUI 【发布时间】:2015-05-07 22:05:40 【问题描述】:
private class PrintButtonListener implements ActionListener    
    public void  actionPerformed(ActionEvent e)

            if (e.getSource() == radio)
                try
                    File file = new File("Birds.txt");
                    Scanner inputFile = new Scanner(file);
                    area.setText(inputFile.toString());
                    
                catch(Exception ex)
                    System.out.println("File not found!");
                
            

        
  

我需要显示 2 个不同的文件。每个文件都有一个关联的单选按钮。单击按钮后,文件的内容必须显示在 GUI 界面上。我真的需要这个帮助!

    private JRadioButton radio; // first radio button
    private JRadioButton radio2; // second radio button
    private JRadioButton radio3; // third radio button

    private JButton button; // button to gain access to whatever option was selected

    private JPanel panel; // the panel

    private JTextArea area;

    private ButtonGroup buttonGroup;

    public BirdTest2() // GUI constructor
        super();
        setSize(2000,950);
        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        setVisible(true);
        buildPanel();
        add(panel);
    

    public void buildPanel() // building the panel for the GUI
        panel = new JPanel();

        radio = new JRadioButton("Display all birds!");
        radio2 = new JRadioButton("Display foreign birds only!");
        radio3 = new JRadioButton("Display non-foreign birds only!");

        button = new JButton("Click me!");
        button.addActionListener(new PrintButtonListener());

        buttonGroup = new ButtonGroup();
        buttonGroup.add(radio);
        buttonGroup.add(radio2);
        buttonGroup.add(radio3);

        area = new JTextArea();

        panel.add(radio);
        panel.add(radio2);
        panel.add(radio3);
        panel.add(button);
        panel.add(area);
    

这是我上面的窗口、按钮、单选按钮的代码。帮助将不胜感激!如果您需要任何其他信息,请告诉我:)

【问题讨论】:

我确实制作了 3 个单选按钮,但如果我至少可以让 2 个工作,那就没问题了。一个我需要使用链表中的删除方法,这将是第三个。 这段代码的主类是什么? 我现在只有: BirdTest2 app = new BirdTest2(); 你能出示这个类的签名吗:public class BirdTest2 ... 【参考方案1】:

单击按钮后,文件的内容必须显示在 GUI 界面上。

要使用 Scanner 读取文件,您必须使用您正在使用的 Scanner 对象定义的方法显式迭代文件的所有行(当前在 actionPerformed 中使用的 toString 将只返回一个表示 Scanner 的字符串对象,不一定是文件的内容)。

Scanner inputFile = new Scanner(file);
while ( inputFile.hasNextLine() )
    area.append(inputFile.nextLine());//append the line to the JTextArea
    area.append("\n");//append any new lines as they are ommitted with Scanner.nextLine

您可以在actionPerformed方法中检查选择了哪个JCheckBox,以根据选择的JCheckBox确定要打开哪个文件。

【讨论】:

谢谢你,我会试试这个,让你知道我的结果:) 没有显示,可能是什么原因?

以上是关于尝试在 GUI 中使用文件捕获 java的主要内容,如果未能解决你的问题,请参考以下文章

Java GUI/OOP 变量问题

java nextInt() 尝试多次捕获重复输出

尝试在java中的socket客户端程序中捕获多次尝试

让java gui在网络浏览器中打开网页

Java 屏幕捕获应用程序 - 如何?

尝试使用 Win32 WASAPI C++ 中的“捕获流”创建 wav 文件