请大家帮帮忙,作一个简单的界面,要用按钮响应事件,第一步我想学会按钮使用,先在按按钮时输出一行字符,可是事件无反应,代码如下:
/////////////////////////////////////////////////////////////////////////////////////////
package mypackage;import java.util.*;
import java.awt.*;
import java.awt.event.*;
import java.io.*;
import javax.swing.*;
import javax.swing.event.*;//一个简单响应按钮事件public class application extends JFrame implements ActionListener{
 JButton bstart;
 JTextField text;
//界面初始化,实际其中只用到一个button,主函数就一句
public application(){ 
JTextField text=new JTextField(8);
JButton bstart=new JButton("start"); 
bstart.addActionListener(this);  
JPanel TOPpanel=new JPanel();
JFrame menuframe=new JFrame("menuframe");
JLabel lcity=new JLabel("number         ");
Container panel=new JPanel();
//TOPpanel为放在顶上的面板
TOPpanel.setLayout(new BorderLayout());
TOPpanel.add(lcity,BorderLayout.WEST);
TOPpanel.add(text,BorderLayout.CENTER);
TOPpanel.add(bstart,BorderLayout.EAST);  
//把TOPpanel放到panel中去
panel.setLayout(new BorderLayout());
panel.add(TOPpanel,BorderLayout.NORTH);
//加载窗体
menuframe.setContentPane(panel);
menuframe.setSize(800, 600);   
menuframe.setVisible(true);
menuframe.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
 }
//响应按钮  
 public void actionPerformed(ActionEvent e) {
      if(e.getSource()==bstart)
      {
       System.out.println("ok!");
       }
 }
//主函数
public static void main(String[] args) {
new application();
}
}

解决方案 »

  1.   

    如果把它改成内部匿名类的话, 响应事件时调用不了外部函数,请哪位好心的告诉我写事件调用其他类函数的方法,bstart.addActionListener(new ActionListener()
                {
                  public void actionPerformed(ActionEvent e) {
                     JOptionPane.showMessageDialog(null, "OK", "message", JOptionPane.INFORMATION_MESSAGE);
                     }
                }
            );
      

  2.   

    不是调用不了,是你又重新创建了text和bstart了
     JButton   bstart; 
      JTextField   text; 
    //界面初始化,实际其中只用到一个button,主函数就一句 
    public   application(){   
      text=new   JTextField(8); 
      bstart=new   JButton("start");   
    bstart.addActionListener(this); 
    改成这样就行了