Я пишу код для индикатора выполнения и мне нужно объявить анонимный внутренний класс, но когда я это делаю, я получаю следующее:
Lab2Part2.java:25: ошибка: недопустимое начало выражения public void actionPerformed(ActionEvent e) ^ Lab2Part2.java:25: ошибка: незаконное начало выражения public void actionPerformed(ActionEvent e) ^ Lab2Part2.java:25: error: '; ' ожидаемое публичное недействительное действиеPerformed(ActionEvent e) ^ Lab2Part2.java:25: ошибка: ';' ожидаемое публичное действие voidPerformed (ActionEvent e)
Вот код:
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
public class Lab2Part2 extends JFrame implements ActionListener
{
private JFrame frame;
private JButton button;
private JPanel panel;
public Lab2Part2()
{
setLayout(new GridLayout());
frame = new JFrame();
button = new JButton("Let's start this show");
panel = new JPanel();
panel.add(button);
InnerProgress prog1 = new InnerProgress("Progress 1: ");
InnerProgress prog2 = new InnerProgress("Progress 2: ");
button.addActionListener(new ActionListener());
//this is where it throws errors
public void actionPerformed(ActionEvent e)
{
Object source = e.getSource();
if(source == button)
{
Thread th1 = new Thread(prog1);
Thread th2 = new Thread(prog2);
th1.start();
th2.start();
}
}
add(panel);
add(prog1);
add(prog2);
setVisible(true);
setDefaultCloseOperation(EXIT_ON_CLOSE);
setLocationRelativeTo(null);
pack();
}
public static void main(String [] args)
{
new Lab2Part2();
}
class InnerProgress extends JPanel implements Runnable
{
private String progress;
private JProgressBar bar;
public InnerProgress(String _progress)
{
progress = _progress;
add(bar);
}
public void run()
{
System.out.println("We are running: " + progress);
}
}
}