2016-01-15 458 views
0

這是我在stackOverflow上的第一篇文章,我很想聽聽在本網站上發佈問題的正確禮儀。Java在GUI中按下按鈕時會生成下一組按鈕按鈕

我在簡短的幾條語句中遇到問題:
我希望能夠通過單擊按鈕來更改Java GUI中標籤的編號。當我點擊按鈕時,屏幕上的15個標籤應該從1-15到16-31。隨着每次點擊,標籤都應該生成接下來15個數字的標籤。

圖片: 目前發生的事情是,當我按「下一步」按鈕,如下:

GUI screen prior to pressing the next button

After the next button is pressed, the screen changes to the following

我面對的是,那之後我按下一個按鈕的問題再次,屏幕不會改變,並保持16-31的標籤。

目的:具有功能「上一頁」和「下一頁按鈕有序分別刷新與前15個或下一個15標籤的GUI,

以下是用於該事件處理程序的代碼。」上一頁「Next」按鈕:

private void jButton2ActionPerformed(java.awt.event.ActionEvent evt) {           
    // TODO add your handling code here: 

}           



int updateLabelBy = 16; 
int multiplyingFactor = 1; 
int sum = multiplyingFactor * updateLabelBy ; 


private void jButton3ActionPerformed(java.awt.event.ActionEvent evt) {           
    // TODO add your handling code here: 
    //When this button is pressed, JPanel2,3,4,5 will all show the next instance of solutions 

    if (NumOfExplanations > 15) 
    { 
     //Clearing out JPannels 
     jPanel1.removeAll(); 
     jPanel1.updateUI(); 
     jPanel2.removeAll(); 
     jPanel2.updateUI(); 
     jPanel3.removeAll(); 
     jPanel3.updateUI(); 
     jPanel4.removeAll(); 
     jPanel4.updateUI(); 
     jPanel5.removeAll(); 
     jPanel5.updateUI(); 



       //To update the label index numbers 

    //int multiplied = multiplyingFactor * updateLabelBy; 

    for (int i = 16; i < NumOfExplanations; i++) 
    { 
     JLabel label = new JLabel("Exp " + i ); 
     label.setSize(100,35); 
     label.setMaximumSize(new Dimension (140,40)); 
     label.setMinimumSize(new Dimension (100,30)); 
     label.setFont(new Font("Serif", Font.BOLD, 15)); 

     jPanel2.setLayout(new BoxLayout(jPanel2, BoxLayout.Y_AXIS)); 
     jPanel2.setBorder(BorderFactory.createEmptyBorder(10, 10, 15, 0)); 
     label.setHorizontalAlignment(javax.swing.SwingConstants.CENTER); 
     jPanel2.add(label); 


    } 

    } 
    else 
     { 
     final JFrame parent = new JFrame(); 
     JButton button = new JButton(); 

     button.setText("This document only contains " + NumOfExplanations + " explanations"); 
     parent.add(button); 
     parent.pack(); 
     parent.setVisible(true); 
     parent.setSize(400,200); 
     parent.setLocationRelativeTo(null); 

    } 






}           

回答

0

這很容易做到。要更改按鈕上顯示文本,只是做

btn.setText("New message")

+0

我相信這是比這更復雜一點。由於'btn.setText(「message」)將所有按鈕的標籤更改爲相同的東西。 GUI的屏幕只能容納15個按鈕,正如我在上面的GUI的ScreenShot中所示。 –

+0

如果所有按鈕的名稱不同,例如btn1,btn2等,你可以做btn1.setText(「消息」),這將不會改變他們。 – DalekCaan99

+0

我不是手動創建按鈕,我通過添加'for'循環來製作按鈕。 –