ActionListener问题

时间:2011-01-14 08:49:51

标签: java swing actionlistener

我正在尝试在另一个按钮上的按钮上创建一个actionListener,该按钮也有一个actionlistener,我只是无法用某种方式解决它。我试图在第二个按钮上做一个动作,但我无法弄清楚。如果有人帮助我,我会很感激!这是下面的代码:

import java.awt.*; 
import java.awt.event.*; 

import javax.swing.*;
import java.io.*;
import java.util.*;

public class basic implements ActionListener{

   public static void main(String[] args) {
       basic process = new basic (); 
  }

   public basic(){



           JFrame fan = new JFrame("Scheme"); 


           JPanel one = new JPanel(new BorderLayout()); 
          fan.add(one);

         JPanel uno = new JPanel();
           uno.setLayout(new BoxLayout(uno, BoxLayout.Y_AXIS));
           JButton addB = new JButton("first choice");


         addB.setAlignmentX(Component.CENTER_ALIGNMENT);
           uno.add(addB); 

           addDButton.setActionCommand("hehe");
           addDButton.addActionListener(this);

         one.add(uno,BorderLayout.CENTER); 

           fan.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);        
           fan.setSize(500,700);
          fan.setLocationByPlatform(true);
           fan.setVisible(true);
}

            public void actionPerformed(ActionEvent evt) {

    JPanel markP = new JPanel(new FlowLayout(FlowLayout.RIGHT,10,20)); 
    JDialog dialog = new JDialog((JFrame)null);
    dialog.getContentPane().add(markP,BorderLayout.CENTER); 

     if (evt.getActionCommand().equals("hehe")) {


     JLabel title = new JLabel("Proceed");
     title.setFont(new Font("Arial",Font.BOLD,15)); 
     markP.add(title,BorderLayout.NORTH);



    JButton exit = new JButton("Exit");
    markP.add(exit);


//here i want to create another actionListener on the exit button only without affecting the other content which is in the button "addB " so that when i click on the addB button the J dialog pops up, and than when i click on exit button the program will return to the menu.I couldn't figure it out.



    dialog.toFront(); 
    dialog.setModal(true); 
    dialog.pack(); // 
    dialog.setLocationRelativeTo(null); // 
               dialog.setVisible(true);

}

// here the code goes on but the problem is that of the actionListener which is concerned.

2 个答案:

答案 0 :(得分:0)

JButton exit = new JButton("Exit");
exit.addActionListener(new ActionListener() {
   public void actionPerformed(ActionEvent evt) {
         // you code here
   }
});

您应该使用更好的变量名称。遵循您的代码并不容易

答案 1 :(得分:0)

如果使用

检查操作的来源,则可以使用相同的ActionListener
if (evt.getSource().equals(addDButton) { original code }
else { code for the other button }