2011-10-23 84 views
2

我絕不是程序員,並且通過在論壇上琢磨,並通過大多數人寫的例子來了解我所瞭解的大部分內容。我已經開始使用java來創建一個框架中的按鈕了。基本上我想要做的是從文件中讀取單詞,爲每個單詞創建一個按鈕,然後讓我選擇該按鈕來顯示選項(稍後將編碼)。我知道這已經被回答了,但是沒有一個答案真的給了我任何澄清(我對這個非編程術語/簡單化的解釋非常讚賞,但當然不需要:))。在Java中使用.actionPerformed實現變量

我的代碼來創建我的變量按鈕(desireFile從系統中較早的程序讀取):

File fileIn = new File(desireFile); 
Scanner fileReader = new Scanner (fileIn); 
int wordNum = 0; 

while(fileReader.hasNext()){ 
    String wordReader = fileReader.next(); 
     buttonVal = new JButton (wordReader); 
    buttonVal.addActionListener(new ButtonListener()); 
    buttonVal.setEnabled(true); 
    contentPane.add(buttonVal, BorderLayout.NORTH); 
    wordNum++; 
} 

當我用wordNum只是爲了確保我的循環正確遞增。然後,我有我的ButtonListener類:

class ButtonListener implements ActionListener { 
    ButtonListener() { 
    } 

    public void actionPerformed(ActionEvent e) { 
    System.out.println("You clicked the button"); 
    } 
} 

我得到這個工作,它創建我的變量按鈕,每當我點擊它打印這些按鈕中的任何一個控制檯「你點擊的按鈕」。我遇到的問題是,這不是我希望它最終做的。我需要動作根據主類的結果變化(例如,如果文件中的文本顯示「這是一隻狗」,我需要「this」按鈕來執行與「is」按鈕不同的操作) 。另一個問題是,每次文件輸入都是可變的,我不知道如何設置if/else語句(因爲這個單詞可以是任何東西,因此按鈕任何東西,不是?)

再次我只是享受編程作爲一種業餘愛好,並感謝所有的幫助,如果你可以貶低我的任何解釋(或給我鏈接做得好),我將不勝感激。到目前爲止,我對Java中的所有東西都很好,但是這些按鈕讓我很難過。感謝您的幫助大師

回答

2

您可以方便地將JButton的兩種方式中的一個文本,無論是從通過

public void actionPerformed(ActionEvent e) { 
    String buttonText = e.getActionCommand(); 
} 

或通過獲得的動作事件的actionCommand屬性及其的getSource

public void actionPerformed(ActionEvent e) { 
    String buttonText = ((JButton)e.getSource()).getText(); 
} 

如何處理返回的字符串將取決於您想要如何處理它以及如何確定如何處理該字詞。你會有一本詞典來查找這個詞,然後決定做什麼?目前很難說給出的信息。

+0

你是男人!爲什麼我試圖通讀它的每一個論壇或書籍都有關於做出變量最終結果或創建奇怪外觀循環的瘋狂解釋?在這個網站上是否有豎起大拇指按鈕,因爲你先生得到一個;)(或女士,沒有意圖的攻擊) –

+0

你可以通過點擊答案左邊的支票接受答案。您也可以通過點擊答案左側大數字(此處爲0)上方和下方的三角形來回答投票(或向下投票)。 –

+0

很高興幫助!' –