2010-05-14 120 views
3

我知道創建按鈕時,比如next和previous,代碼可能會稍微長一點才能讓這些按鈕起作用。最簡單的創建java下一個/上一個按鈕的方法

我的教授給我們這個例子中創建一個按鈕:

private void jbtnNext_Click() { 
     JOptionPane.showMessageDialog(null, "Next" ,"Button Pressed", 
      JOptionPane.INFORMATION_MESSAGE);   

    try { 
     if (rset.next()) { 
      fillTextFields(false); 
     }else{ 
      //Display result in a dialog box 
      JOptionPane.showMessageDialog(null, "Not found"); 
    } 
} 
    catch (SQLException ex) { 
     ex.printStackTrace(); 
    } 
} 

雖然,我真的不明白,總之,如果簡單的語句如何是什麼使下一個按鈕的功能。我看到fillTextFields(false)使用布爾值,並且您需要在代碼的開頭初始化該布爾值,我相信。我已經把private fillTextFields boolean = false;,但這似乎並不正確...

我只是希望有人能更好地解釋它。謝謝:)

+0

您推送的方法大概是按下按鈕時會調用的方法。 'rset'的類型是什麼,'rset.next()'是做什麼的?你也許需要在代碼中設置一個斷點,並在你點擊下一個按鈕時逐步查看它。 – 2010-05-14 21:26:49

+0

「rset」是ResultSet,「rset.next()」應該用於向前導航通過適當標籤中顯示的記錄數據庫。 – Holly 2010-05-14 21:54:01

回答

1

那麼,fillTextFields(true);是一個函數調用,當你傳遞一個真/假標誌它會做一些事情(你必須看到函數內部的代碼,以確切地找出它的作用)。

該字段聲明private fillTextFields boolean = false;無效,您應該在名稱前面提供該類型,例如:private boolean fillTextFields = false;。除了flag無效之外的無效語法,特別是如果你沒有在任何地方使用它。

我不明白你期望在jbtnNext_Click()方法中看到什麼......當你聲明你的按鈕並在UI上點擊它時,這個方法會被調用。它不會使按鈕起作用,即使您在jbtnNext_Click()方法中沒有任何內容,按鈕也可以正常工作。例如:

private void jbtnNext_Click() { 
    // The button will still work, but it simply won't do anything 
} 

獲得一個按鈕的功能取決於您查看的功能按鈕。單擊next/previous會出現什麼情況?

更新:

我認爲我需要布爾 聲明使 「fillTextFields(假)」 的工作。

fillTextFields方法給你的地方嗎?如果是,那麼你不需要聲明任何東西,更不用說變量。如果它已經提供,那麼你只需調用該方法即可。如果它不是那麼前提是你需要聲明它:

private void fillTextFields(bool shouldFill) 
{ 
    if(shouldFill) 
    { 
     // fill the text fields 
    } 
    // possibly have an else statement if you need to do something else here 
} 

否則你在這個函數看到的就是你所需要的,以去在數據庫中的下一個記錄的事情。

+0

通過按下一個按鈕,我應該可以在數據庫中執行一條記錄。我意識到我在這裏輸入了錯誤的語法,對不起,它實際上是我的代碼中的正確方法。雖然,我明白按鈕總是工作不管,但我認爲我需要布爾聲明使「fillTextFields(false)」工作... – Holly 2010-05-14 21:48:16

1

我認爲提供的代碼有點簡短,以提供一個很好的解釋,發佈fillTextFields的代碼會有更多的幫助。

我猜測程序正在做的是它從數據庫中檢索一些數據。下一個按鈕允許程序遍歷已返回的項目。

一旦按下了下一個按鈕,就會顯示一個消息框讓您「知道」按鈕確實被按下了。

rset。next返回列表中有另一個元素(從數據庫中檢索)的真,如果沒有則返回false。

如果它返回true,則調用fillTextFields方法,我猜想在屏幕上顯示數據(即使沒有我可以推測的代碼)。如果沒有剩下任何東西,則會顯示一個顯示「未找到」的消息框。

擁有約

private fillTextFields boolean = false; 

fillTextFields關於你的問題是一個方法,你不能賦值方法。此外,在Java中,聲明這兩種方法和變量時,類型名稱前寫的,如

private int number; 
public float myMethod() { } 
+0

我實際上沒有「fillTextFields」的代碼。我的教授給了我們上面的代碼作爲例子,但是我們必須將它合併到我們的代碼中,讓我們朝着如何完成這項工作的正確方向邁出一步,這意味着我將不得不創建/計算出「fillTextFields」方法我自己。我有一個數據庫,我希望能夠通過GUI從下一個/上一個按鈕進行瀏覽。 – Holly 2010-05-14 21:51:45

0

,除非你用按鈕註冊一個動作下一步按鈕不會做任何事情。我的意思是,無論你的下一個按鈕被定義如下:

private JButton nextButton = new JButton("Next"); 

這會創建一個標籤爲'Next'的按鈕。可能有一些額外的代碼來定位按鈕。爲了讓該按鈕在被點擊時做任何事情,它需要在其上設置一個Action,或者必須添加一個ActionListener。很多時候,那就是創建按鈕類實現的ActionListener,並有權向點擊響應的方法,像這樣:

nextButton.addActionListener(this); 
... 
... 
... 
public void actionPerformed(ActionEvent e) { 
    // some method implementation 
} 

單擊該按鈕時,actionPerformed方法被調用,只要你註冊按鈕上的動作偵聽器。你的教授的代碼中是否有這樣的內容?

相關問題