2015-11-17 42 views
0

我在創建動態網格菜單時遇到了一些麻煩。我想從我的股票在mysql數據庫中加載項目並顯示在網格菜單中。我通常使用此JTable中是什麼,我想enter image description here如何創建一個java網格滑塊?

這是我做我的代碼

void GridTest() { 
     for (int i = 0; i < 11; i++) { 
      JButton button = new JButton(Integer.toString(i + 1)); 
      jPanel1.add(button); 
      button.addActionListener(new ActionListener() { 
     public void actionPerformed(ActionEvent e) { 
        System.out.println(getTitle()); 
       } 
      }); 
     } 
    } 

當我點擊向左或向右應該進入下一個12個項目。有沒有辦法實現我的目標?

+1

是的,但所有的細節將取決於您的實施。你應該有一個類型的模型,它可以讓你「瀏覽」結果,通知用戶需要更新它的視圖。該模型將控制當前可用的值。假設您的ResultSet支持遊標,您可以簡單地將模型替換爲結果集並將光標移動適當的量。我不會重新創建每個頁面上的按鈕更改,我只是更新那裏的內容 – MadProgrammer

回答

0

這應該用LayoutManager完成。

使用一個JPanel來容納更多JPanels - 這些JPanels應該包含按住每個「網格」的按鈕。

指定CardLayout作爲面板固定器的LayoutManager。因此,你可以這樣做:

public void actionPerformed(ActionEvent e) { 
        ((CardLayout) container.getLayout()).show(container, "panel_name"); 
       } 
      }); 

​​是Java教程的用於處理卡布局的部分。

+0

所以,你建議操作加載所有視圖/頁面?這是很多,使用單個視圖和基於當前頁面更新其內容會更簡單 - 恕我直言, – MadProgrammer

+0

@MadProgrammer也許......雖然不知道這一點。我傾向於在我的代碼中廣泛使用CardLayouts ...:/ – Zizouz212

+0

想象您擁有12,000個產品,這就是您必須創建的1,000個視圖。從編碼的角度來看,這可能並不困難,你可以用單一視圖和簡單模型做同樣的事情,只是說;) – MadProgrammer