actionPerformed dubluje czynności przycisków

0

Witam dopiero zaczynam przygodę z graficznymi programami i mam problem z actionPerformed. Chciałem do każdego przycisku zrobić osobne ale zawsze wywala mi że już posiadam (mam już od
jednego przycisku ) więc w tamtym actionPerformed umieściłem czynność następnego przycisku i cały program szaleje.

import javax.swing.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.io.BufferedReader;
import java.io.*;

public class Interface extends JFrame implements ActionListener {

    JButton getBudget = new JButton("getBudgetWithFile ");
        @Override
        public void actionPerormed( ActionEvent e) {

        }


    JButton saveBudget = new JButton("saveBudget");
    JButton quit = new JButton("QUIT");

    JTextArea showBudget = new JTextArea(1,5);

    public Interface() {
        super("hello world");
        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        setLocation(2500,500);
        setSize(500,500);

        JPanel pane = new JPanel();

        getBudget.addActionListener(this);
        saveBudget.addActionListener(this);

        pane.add(getBudget);
        pane.add(showBudget);
        pane.add(saveBudget);
//        pane.add(quit);
        getContentPane().add(pane);
        add(pane);

        setVisible(true);
    }


    @Override
    public void actionPerformed(ActionEvent e) {

        String name = getBudget.getText();
        String line;
            try {
                BufferedReader br = new BufferedReader(new FileReader("budget.txt"));
                while ((line = br.readLine())!= null) {
                    showBudget.append(line);
                    br.close();
                }
            } catch (Exception ek){}

        String name2 = saveBudget.getText();
        String text = showBudget.getText();

        System.out.print(text + "text");
        System.out.print(name2 + "name2");

        try {
            PrintWriter writer = new PrintWriter("budget.txt");
            writer.print("");
            writer.close();

            BufferedWriter bw = new BufferedWriter(new FileWriter("budget.txt"));
//            bw.write("");
            bw.write(text,0,text.length());
            bw.write(text);
            bw.flush();
            bw.close();
        } catch (Exception ek) {}
    }

}
0

Zrób dla każdego przycisku osobną metodę:

button.addActionListener(e -> doSomething());
...
private void doSomething()
{
    ...
}

1 użytkowników online, w tym zalogowanych: 0, gości: 1