2013-10-21 108 views
0

我試圖在JPanel內的JTextPane &內的JButtons內封裝JTextPane,在JPanel內返回整個面板。以下是我的代碼,但它水平顯示按鈕。如何以及在哪裏可以將這些按鈕放入面板中?答案似乎很明顯,但我仍然無法做到。如何對齊JPanel中的JPanel內的Jbuttons JPanel內

  JTextPane tp = new JTextPane(); 
      JScrollPane sp = new JScrollPane(); 

      SimpleAttributeSet attribs = new SimpleAttributeSet(); 
      StyleConstants.setAlignment(attribs , StyleConstants.ALIGN_CENTER); 
      tp.setParagraphAttributes(attribs,true);    
      tp.setEditable(false); 
      tp.setOpaque(false); 
      tp.setPreferredSize(new Dimension (100,100)); 

      JButton jb = new JButton(); 
      jb.setPreferredSize(new Dimension(100, 100)); 
      //jb.setHorizontalAlignment(SwingConstants.CENTER);   

      tp.setText(food_Name);   
      jb.add(tp); 

      panel1.add(sp); 
      sp.add(panel2); 
      panel2.add(jb); 
+0

嘗試改變'JPanel's – MadProgrammer

+0

對不起的佈局管理器,但我不明白你是什麼意思?我可以舉個例子嗎?我的搜索一直無濟於事。 – brainsfrying

回答

1

如上所述,您需要使用佈局管理器。

的FlowLayout - 放置左到右,然後上到下(默認

的BorderLayout -five固定位置,北,南,東,西,中心

的BoxLayout - 在單個行或列

GridLayout的-within與標準尺寸的行和列

示例代碼BOR網格的細胞DER佈局 - 退房佈局管理器上的Java API爲他人

public MySupportPanel() { // constructor 
    setLayout(new BorderLayout()); 
    JButton b1 = new JButton("Button 1"); 
    JButton b2 = new JButton("Button 2"); 
    JButton b3 = new JButton("Button 3"); 
    JButton b4 = new JButton("Button 4"); 
    JButton b5 = new JButton("Button 5"); 

    add(b1, BorderLayout.CENTER); 
    add(b2, BorderLayout.NORTH); 
    add(b3, BorderLayout.SOUTH); 
    add(b4, BorderLayout.EAST); 
    add(b5, BorderLayout.WEST); 
    } 
+0

謝謝。你可能沒有說明我需要的東西。因爲按鈕的數量是由DB記錄決定的,所以我不能按照建議準確地將這些按鈕放置在佈局中。我需要的是一個可滾動的JPanel,其中包含那些可以自動調整大小的按鈕? – brainsfrying

+0

好的 - 我並不清楚你的意思,但我認爲你需要一個佈局管理器。我給出的例子只是用於按鈕,佈局管理器可以用於容器中的任何組件對象。 – ozzyzig