2013-04-05 70 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