欢迎来到Doc100.Net免费学习资源知识分享平台!
您的位置:首页 > 程序异常 >

初学者有关问题:怎么实现菜单之间切换,监听响应有关问题?

更新时间: 2014-05-16 01:32:01 责任编辑: Author_N5

 

菜鸟问题:如何实现菜单之间切换,监听响应问题??
问题描述:
我想编一个首界面是“Add”和“Del”按钮;然后点击“Add”按钮后,进入Add界面,然后点击Add的“OK“按钮,再输出
”Adding is OK!“信息;但是设置的监听器,只能监听主界面菜单情况,而对于接下来菜单则不予监听,如何处理这种情况??
源代码如下:
package MyGUI;
import java.io.*;
import java.awt.*;
import java.awt.event.*;

import javax.swing.*;
public class MainFrame extends Frame implements ActionListener{
public String cmd;
Frame mf=new Frame();
Panel p1=new Panel();
Panel p2=new Panel();
Panel p3=new Panel();

Button b11=new Button("add");
Button b12=new Button("del");

TextField t2=new TextField("add");
Button b2=new Button("Ok");

TextField t3=new TextField("del");
Button b3=new Button("OK");
public void init(){

p1.add(b11);
p1.add(b12);
b11.addActionListener(this);
b12.addActionListener(this);
mf.add(p1);
mf.setVisible(true);
//mf.setVisible(true);

p2.add(t2);
p2.add(b2);
t2.addActionListener(this);
b2.addActionListener(this);

p3.add(t3);
p3.add(b3);
t3.addActionListener(this);
b3.addActionListener(this);


}

public void actionPerformed(ActionEvent e) {
String cmd=e.getActionCommand();
if(cmd=="add"){
add();

}
if(cmd=="del"){
del();
}


}
private void del() {
System.out.println("Del");
mf.add(p3);
p1.setVisible(false);
p3.setVisible(true);
if(cmd=="ok"){
System.out.println("Deling is OK");
}
}

private void add(){
System.out.println("Add");
mf.add(p2);
p1.setVisible(false);
p2.setVisible(true);
if(cmd=="ok"){
System.out.println("Adding is OK");
}

}
public static void main(String args[]){
MainFrame book=new MainFrame();
book.init();
}



}


--参考方法--
建议用SWING实现吧,下面实现了你想要的效果,之前不行主要是你的监听设计不够合理
Java code
import java.io.*;
import java.awt.*;
import java.awt.event.*;

import javax.swing.*;

public class MainFrame extends JFrame implements ActionListener{
    public String cmd;
    JFrame mf=new JFrame();
    JPanel p1=new JPanel();
    JPanel p2=new JPanel();
    JPanel p3=new JPanel();

    JButton b11=new JButton("add");
    JButton b12=new JButton("del");

    JTextField t2=new JTextField("add");
    JButton b2=new JButton("Ok");


    JTextField t3=new JTextField("del");
    JButton b3=new JButton("OK");
    public void init(){

        p1.add(b11);
        p1.add(b12);
        b11.addActionListener(this);
        b12.addActionListener(this);
        mf.add(p1);

//mf.setVisible(true);

        p2.add(t2);
        p2.add(b2);
//        t2.addActionListener(this);

        b2.addActionListener(this);

        p3.add(t3);
        p3.add(b3);
//        t3.addActionListener(this);
        b3.addActionListener(this);

        mf.pack();
        mf.setLocationRelativeTo(null);
        mf.setVisible(true);
        mf.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    }

    public void actionPerformed(ActionEvent e) {
        String cmd=e.getActionCommand();

        if(e.getSource()==b11){
             add();
        }
        if(e.getSource()==b12){
             del();
        }
        if(e.getSource()==b2){
             System.out.println("Adding is OK");
        }
    }
    private void del() {
        System.out.println("Del");
        mf.add(p3);
        p1.setVisible(false);
        p3.setVisible(true);
        if(cmd=="ok"){
            System.out.println("Deling is OK");
        }
    }

    private void add(){
        System.out.println("Add");
        mf.add(p2);
        p1.setVisible(false);
        p2.setVisible(true);


    }
    public static void main(String args[]){
        MainFrame book=new MainFrame();
        book.init();
    }



} 		
上一篇:上一篇
下一篇:下一篇

 

随机推荐程序问答结果

 

 

如对文章有任何疑问请提交到问题反馈,或者您对内容不满意,请您反馈给我们DOC100.NET论坛发贴求解。
DOC100.NET资源网,机器学习分类整理更新日期::2014-05-16 01:32:01
如需转载,请注明文章出处和来源网址:http://www.doc100.net/bugs/t/564146/
本文WWW.DOC100.NET DOC100.NET版权所有。