2013-04-05 71 views
0

我正在设计一个程序,允许用户预订飞机的航班。当程序第一次运行时,一个JFrame打开两个按钮。取决于点击哪个按钮,actionPerformed打开新的JPanel等。嵌套actionPerformed()

我试图在JTabbedPane中创建一个可以显示两个按钮的选项卡。点击任一按钮将导致不同的图像,但这部分代码已经在actionPerformed方法中。我怎样才能找出哪个按钮被点击?

这是我用的方法:

protected JComponent makeImagePanel(String path1, String path2) 
{ 
    try{ 
     JPanel panel= new JPanel(false); 
     JButton international= new JButton("International Flights"); 
     JButton domestic= new JButton("Domestic Flights"); 
     international.setActionCommand("login"); 
     domestic.setActionCommand("domestic"); 
     international.setEnabled(true); 
     international.addActionListener(new ActionListener() { 
       @Override 
       public void actionPerformed(ActionEvent e) { 
        BufferedImage myPicture = ImageIO.read(new File(path1)); 
        JLabel picLabel = new JLabel(new ImageIcon(myPicture)); 
       } 
      }); 
     domestic.addActionListener(new ActionListener() { 
       @Override 
       public void actionPerformed(ActionEvent e) { 
        BufferedImage myPicture = ImageIO.read(new File(path2)); 
        JLabel picLabel = new JLabel(new ImageIcon(myPicture)); 
       } 
      }); 

而这正是我试图实现它:提前为帮助

JComponent reservation= makeImagePanel("international_1.gif", "domestic_seating.gif"); 
      overview.addTab ("Reserve a Flight", reservation); 
      overview.setMnemonicAt(1, KeyEvent.VK_2); 

谢谢!

回答

0

ActionEvent有一个方法getSource(),它将为您提供事件被触发的对象。或者你可以设置全局变量来找出哪个按钮被点击。有很多方法可以做到这一点。

Regards, Ravi

+0

Thanks!这帮了很多:) – nichi 2013-04-06 01:12:30