调了一个下午还不对....闷.....
Java code
import java.awt.*;
import java.awt.event.*;
public class Cen
{
   private static Button b;
   private static Button c;
   
   public static void main(String args[])
  {
        Frame f=new Frame("Test");
        b=new Button("B");
        b.addActionListener(new ButtonHandler());  //好象这里报错.....
        c=new Button("C");
        c.addActionListener(new ButtonHandler());
        
        f.setLayout(new FlowLayout());
        f.add(b);
        f.add(c);
        
        f.setSize(200,100);
        f.setVisible(true);
 
   }
   
   class ButtonHandler implements ActionListener
     {
     public void actionPerformed(ActionEvent e)
       {
           System.out.println("all");  //这个地方输出有问题
        if(e.getSource().equals(b))
            System.out.println("b");    
        if(e.getSource().equals(c))
            System.out.println("c");
       }
     }
}
------解决方案--------------------写个匿名内部类试试·
------解决方案--------------------    b.addActionListener(new Cen().new ButtonHandler());  //好象这里报错.....
       c=new Button("C");
       c.addActionListener(new Cen().new ButtonHandler());
你这个是内部类的问题。
像我上面那个样就没问题了
------解决方案--------------------        b.addActionListener(cen.new ButtonHandler());  //好象这里报错.....
       c=new Button("C");
       c.addActionListener(cen.new ButtonHandler());
内部类的问题
------解决方案--------------------程序耦合太多了,设计不是很合理。
这样给你改了一下,避免了各种各样的数据交叉问题。
import java.awt.Button;
import java.awt.FlowLayout;
import java.awt.Frame;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
public class Test {
   public static void main(String args[]) {
       new MyFrame("test");
   }
}
class MyFrame extends Frame {
   public MyFrame(String title) {
       super(title);
       b = new Button("B");
       b.addActionListener(new ButtonHandler());  //好象这里报错.....
       c = new Button("C");
       c.addActionListener(new ButtonHandler());
       setLayout(new FlowLayout());
       add(b);
       add(c);
       setSize(200, 100);
       setVisible(true);
       addWindowListener(new WindowAdapter() {
           @Override
           public void windowClosing(WindowEvent e) {
               System.exit(0);
           }
       });
   }
   private Button b,  c;
   class ButtonHandler implements ActionListener {
       public void actionPerformed(ActionEvent e) {
           System.out.println("all");  //这个地方输出有问题
           if (e.getSource().equals(b)) {
               System.out.println("b");
           }
           if (e.getSource().equals(c)) {
               System.out.println("c");
           }
       }
   }
}
------解决方案--------------------上面的代码中增加了窗口关闭事件,使程序可以正常关闭。
------解决方案--------------------
------解决方案--------------------swt 漂过
------解决方案--------------------up