2013-10-18 73 views
0

我在思考如何讓我的程序分配操作命令/操作偵聽從堆棧創建的一組按鈕時遇到困難。這些按鈕是從文本文件上的行創建的。在應用程序啓動時創建多個功能按鈕

public void getLaunchButtons(){ 


    File list = new File("resources/programs.txt"); 

    String line = null; 

    try{ 

     FileReader fr = new FileReader(list); 
     BufferedReader br = new BufferedReader(fr); 

     buttons = new Stack<Button>(); 

     while((line = br.readLine()) != null){ 
     buttons.push(new Button(line)); 
     add(buttons.pop()); 

     } 

     br.close(); 

    } 
    catch(Exception ex){ 

    } 
} 

我該如何去分配一個Action Listener到創建的按鈕? 我的總體目標是創建按鈕,點擊時啓動與該按鈕關聯的程序。用戶可以將程序標題(按鈕標題)和目錄添加到要啓動的程序中(按鈕操作命令)

+0

你有更好的格式代碼,空行不可讀反正代碼有minimufal感。 – 2013-10-18 18:21:50

+0

由於我正在確定mynext步驟,因此將其分隔開來。在我的部分代碼全部解決後,我總是將其清理並添加註釋。 –

回答

0

非常基本的東西,獲取對Button的引用,而不是試圖將其直接粘貼到疊加。

Button b = new Button(line); 
b.addActionListener(referenceToActionListener); 
buttons.push(b); 
add(b); 
+0

哇。非常感謝。當你移動太快時會發生這種情況。哈哈。 –

+0

我是否過分複雜了一點?我在想我可以放棄籌碼。 –

+0

是的,我沒有看到堆棧的原因,除非你想保留按鈕引用以備後續處理。 – Kayaman

0

試試這個

Button b = new Button(line); 
b.addActionListener(listener); 
add(b); 

//In global 
ActionListener listener = new ActionListener() 
{ 
    public void actionPerformed(ActionEvent actionEvent) { 
     JButton button = (JButton)actionEvent.getSource(); 
     String line = button.getText(); 
} 
};