问题描述:
我想编一个首界面是“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(); }}