2013-09-24 6 views
-1

Я изучаю Свинг и слушающее использование Java и у меня есть некоторые проблемы со следующим простым кодом:Некоторые сомнения в коде слушателя просто свинг

package com.mycompany.experiment; 

import java.awt.Dimension; 
import java.awt.event.ActionEvent; 
import java.awt.event.ActionListener; 

import javax.swing.JButton; 
import javax.swing.JFrame; 

public class ListenerExp1 { 

    private class MyButtonListener implements ActionListener { 
     public void actionPerformed(ActionEvent evt) { 
      // Qui scriviamo il codice che vogliamo eseguire all' azione del 
      // click sul pulsante 
     } 
    } 

    JFrame frame = new JFrame("FrameDemo"); 
    frame.setMinimumSize(new Dimension(800, 400)); 

    JButton button = new JButton("Cliccami"); 
    MyButtonListener listener = new MyButtonListener(); 

    button.addActionListener(listener); 

} 

В этом коде я объявляю класс слушателя и я пытаюсь создать объекты JFrame и JButton.

Проблема заключается в том, что, когда я пытаюсь добавить некоторые свойства этих объектов линиями:

frame.setMinimumSize(new Dimension(800, 400)); 

и

button.addActionListener(listener); 

Eclipse, знак мне следующую ошибку на этих 2-х линий:

Несколько маркеров в этой строке - Ошибка синтаксиса на токенах (-ах), неправильная конструкция (и) - Синтаксическая ошибка на токене «setMinimumSize», = ожидается после этого

Что не так?

Tnx

Andrea

ответ

2

Эти заявления должны быть в блоке кода, такие как метод конструктор

JFrame frame = new JFrame("FrameDemo"); 
frame.setMinimumSize(new Dimension(800, 400)); 

JButton button = new JButton("Cliccami"); 
MyButtonListener listener = new MyButtonListener(); 

button.addActionListener(listener); 

Кроме того, вы хотите, чтобы вызвать их в EDT как так

SwingUtilities.invokeLater(new Runnable() { 

     @Override 
     public void run() { 
      JFrame frame = new JFrame("FrameDemo"); 
      frame.setMinimumSize(new Dimension(800, 400)); 

      JButton button = new JButton("Cliccami"); 
      MyButtonListener listener = new MyButtonListener(); 

      button.addActionListener(listener); 
     } 
    }); 

Прочитано: Initial Threads

+0

Или в конструкторе, да. –

1

В java вы не можете инициализировать экземпляр без или вне метода.

введите следующий код в свой код.

JFrame frame = new JFrame("FrameDemo"); 
frame.setMinimumSize(new Dimension(800, 400)); 

JButton button = new JButton("Cliccami"); 
MyButtonListener listener = new MyButtonListener(); 

button.addActionListener(listener); 
Смежные вопросы