Добавление кнопки - Java

Узнай цену своей работы

Формулировка задачи:

Добрый вечер! Разбираю пример из книги по добавлению кнопки, программа работает по следующему принципе: создаём кнопку, нажимаем, и открывается новое окно, если закрываем одно из окон, то закроются и остальные. Но проблема в том, что мой компилятор жалуется на строку 26 -
ActionListener listener = new ActionListener (){
Что же тут не так? Благодарю за помощь
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
import java.util.Random;
 
class MyFrame extends JFrame {
    public static int count = 0; //счётчик окон
    MyFrame (int a, int b){
        count++;
        setTitle("Окно с кнопкой: "+count); 
        MyPanel panel = new MyPanel();
        setSize(300, 200);
        setDefaultCloseOperation(EXIT_ON_CLOSE);
        setLocation(a,b); //положение окна
        add (panel); //добавление панели
        setVisible(true); //Отображение окна
    }
}
 
class MyPanel extends JPanel{ //класс панели
    MyPanel(){
        JButton button = new JButton ("Создать новое окно");
        add(button); //добавление кнопки на панель
        button.addActionListener(listener); //регистрация обработчика
    }
    ActionListener listener = new ActionListener (){ //обработчик кнопки - объект анонимного класса
        public void actionPerfomed(ActionEvent event){
            Random rnd = new Random();
            MyFrame frame = new MyFrame (rnd.nextInt(800), rnd.nextInt(500));
        }
    };
}
 
class FrameAndButton {
    public static void main(String[] args) {
        MyFrame frame = new MyFrame (100,100);
    }
}

Решение задачи: «Добавление кнопки»

textual
Листинг программы
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
import java.util.Random;
 
class MyFrame extends JFrame {
    public static int count = 0; //счётчик окон
    MyFrame (int a, int b){
        count++;
        setTitle("Окно с кнопкой: "+count); 
        MyPanel panel = new MyPanel();
        setSize(300, 200);
        setDefaultCloseOperation(EXIT_ON_CLOSE);
        setLocation(a,b); //положение окна
        add (panel); //добавление панели
        setVisible(true); //Отображение окна
    }
}
 
class MyPanel extends JPanel{ //класс панели
    MyPanel(){
        JButton button = new JButton ("Создать новое окно");
        add(button); //добавление кнопки на панель
        button.addActionListener(listener); //регистрация обработчика
    }
    ActionListener listener = new ActionListener (){ //обработчик кнопки - объект анонимного класса
      
 
        @Override
        public void actionPerformed(ActionEvent e) {
           Random rnd = new Random();
            MyFrame frame = new MyFrame (rnd.nextInt(800), rnd.nextInt(500));
            
        }
    };
}
 
class FrameAndButton {
    public static void main(String[] args) {
        MyFrame frame = new MyFrame (100,100);
    }
}

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

8   голосов , оценка 4 из 5
Похожие ответы