2010-05-19 2 views
0

Я создал в своем приложении Java Swing главное окно с JButton. Я добавил к этой кнопке класс прослушивателя событий (реализующий интерфейс ActionListener), который при каждом нажатии кнопки запускает всплывающее окно. Метод работает нормально при нажатии кнопки, за исключением случаев, когда кнопка нажата в первый раз, так как она ничего не делает. Кто-нибудь знает причину такого поведения?Faulty JButton event listener

+3

Пожалуйста, отредактируйте ваш вопрос и добавьте свой код. Думаю, тебе тогда поможет. – Pindatjuh

ответ

2

Простой способ, возможно, предоставить AbstractAction. Вы можете попробовать подход, описанный ниже. (При нажатии кнопки отображается всплывающее окно.)

import java.awt.*; 
import java.awt.event.ActionEvent; 
import javax.swing.*; 
public class FrameTest { 
    public static void main(String[] args) { 
     JFrame jf = new JFrame("Demo"); 
     Container cp = jf.getContentPane(); 
     cp.setLayout(new FlowLayout()); 
     cp.add(new JButton(new AbstractAction("Button Text") { 
      public void actionPerformed(ActionEvent e) { 
       JOptionPane.showMessageDialog(null, "Hello World"); 
      } 
     })); 
     jf.setSize(200, 200); 
     jf.setVisible(true); 
    } 
} 
1

Проводка кода обработчика событий, а также то, как вы прикрепляете его к кнопке, может помочь. Вы можете быстро взглянуть на это Sun Tutorial