java中的对话框问题

来源:百度知道 编辑:UC知道 时间:2024/06/14 16:54:26
麻烦帮我看一下这个代码,错在哪啊?

import java.awt.*;
import java.awt.event.*;
public class namedialog extends Dialog implements ActionListener{
Button b1=new Button("确定");
Button b2=new Button("取消");
Label name=new Label("姓名");
TextField t1=new TextField();
boolean isOkay=false;

public namedialog(Frame parent,String title){
super(parent,title);
setup();
b1.addActionListener(this);
b2.addActionListener(this);
addWindowListener(new WindowCloser());
pack();
show();
}
void setup(){
Panel inf=new Panel();
Panel bs=new Panel();
inf.setLayout(new FlowLayout());
bs.setLayout(new FlowLayout());
bs.add(b1);
bs.add(b2);
inf.add(name);
inf.add(t1);

setLayout(new BorderLayout());
add("Center",inf);
add("South",bs)

倒数第6行的m2识别不了
if(e.getSource()==m2){
你将ms类中的Menultem m2改成成员变量就可以了!

class ms extends Frame implements ActionListener {
MenuItem m2;
public ms() {
super("information");
MenuItem m1 = new Menu("File");
m2 = new Menu("Exit");
MenuBar nb = new MenuBar();
Menu m = new Menu("NEW");
m.add(m1);
m.add(m2);
m2.addActionListener(this);
nb.add(m);
setMenuBar(nb);
show();

}

问题是你的 e.getSource()==m2 有问题哈!
你只在构造器里面声明了m2,因此在你的actionPerformed里面它是未定义的。建议将m1 m2等作为类ms的属性使用,这样就没问题了!
你如果是用的IDE的话,它应该会提示你的!

没main怎么运行,我晕你哦,害我还把myeclipse打开了