Java 如何获取文本文件中的特定文本行以触发JFrame按钮事件

Java 如何获取文本文件中的特定文本行以触发JFrame按钮事件,java,jframe,Java,Jframe,我找不到有人从文本文件中提取特定行并使用它触发JFrame按钮事件的示例。我想使用它,这样当这个音板打开时,它将播放与您关闭程序时相同的歌曲,但前提是您没有停止播放歌曲 为了清楚起见,我不希望这些歌曲在它被中断的地方开始播放,我只希望相同的歌曲从开头开始。 txt文档以四行作为0开始,但我希望他们检查1是否需要自动运行 此外,我对读写文件的概念还很陌生,所以如果我能以正确的方式读写文件,我将非常感谢您提供的任何提示 import javax.swing.*; import java.awt.ev

我找不到有人从文本文件中提取特定行并使用它触发JFrame按钮事件的示例。我想使用它,这样当这个音板打开时,它将播放与您关闭程序时相同的歌曲,但前提是您没有停止播放歌曲

为了清楚起见,我不希望这些歌曲在它被中断的地方开始播放,我只希望相同的歌曲从开头开始。

txt文档以四行作为0开始,但我希望他们检查1是否需要自动运行

此外,我对读写文件的概念还很陌生,所以如果我能以正确的方式读写文件,我将非常感谢您提供的任何提示

import javax.swing.*;
import java.awt.event.*;
import java.awt.*;
import java.applet.Applet;
import java.applet.AudioClip;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.PrintWriter;
import java.net.URL;
import java.util.Scanner;

public class beepBoop extends JFrame {

    JButton Loop1 = new JButton("Play");
    JButton Stop1 = new JButton("Stop");

    URL song1 = beepBoop.class.getResource("song1.wav");
    AudioClip clip = Applet.newAudioClip(song1);

    public beepBoop() {
        super("AddingSound");

        setLayout(new FlowLayout());

        Loop1.addActionListener(new ActionListener() {
            /* THIS IS WHERE I WOULD LIKE TO CHANGE AND SAVE A SPECIFIC LINE OF A TEXT FILE
             * AS A 1 AND WHEN THIS SPECIFIC LINE OF TEXT IS A 1 WHEN THE PROGRAM BEGINS IT
             * WILL ATTOMATICALLY PLAY THE SONG
             * TO BE CLEAR I DO NOT!!! WANT THE SONG TO PICK UP WHERE IT LEFT OFF I JUST WANT
             * THE SAME SONG TO PLAY FROM THE BEGINNING
             * I WOULD LIKE TO REPEAT THIS PROCESS AT LEAST FOUR TIMES
             */

            public void actionPerformed(ActionEvent e) {
                clip.loop();
            }

        });

        Stop1.addActionListener(new ActionListener() {
            public void actionPerformed(ActionEvent e) {
                clip.stop();
            }

        });

        add(Loop1);
        add(Stop1);
    }

    public static void main(String args[]) {
        JFrame frame = new beepBoop();
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        frame.setSize(500, 500);
        frame.setVisible(true);

        File soundstatus = new File("soundstatus.txt");
        try {
            PrintWriter output = new PrintWriter(soundstatus);
            output.println("0");
            output.println("0");
            output.println("0");
            output.println("0");
            output.close();
        } catch (IOException ex) {
            System.out.printf("ERROR: %s\n", ex);
        }

        try {
            Scanner input = new Scanner(soundstatus);
            int sound1 = input.nextInt();
            int sound2 = input.nextInt();
            int sound3 = input.nextInt();
            int sound4 = input.nextInt();
            System.out.printf("sound1: %s sound2: %d\n", sound1, sound2,
                    sound3, sound4);
        } catch (FileNotFoundException ex) {
            System.out.printf("Please choose a different file: %s\n", ex);
        }

    }

}
到目前为止项目的一个小图片。我知道我是个了不起的设计师,不是吗?XD


我认为不能从文本输入触发JFrame事件。但是,我认为你可以通过if/else语句实现你想要的。也在未来考虑提供一个,因为人们没有时间阅读很多人的ELS代码。也许这就是你没有太多回应的原因。你是否建议我使用if-else语句来查看文本文件是否具有特定的字符?没错。但是你不可能在一行代码中实现这一点。很抱歉,您的答案确实需要太长的答案,这里没有人会为您编码:下面是过程:读取文件并将数据放置在string=>read This string类型的对象中。。。。我不知道为什么我在做这件事几个小时之前没有想到这一点。我现在觉得自己很傻,但感谢你提供的非常有用的建议和信息,你在这两条评论中帮助了我更多,就像我问的另外两个问题中的6个不同的ppl一样。谢谢你给我一个简单的答案,而不是告诉我我做的不对,你问的是真正的基础知识,所以也许可以考虑学习它。会很有趣的!:)