我有一個JPanel不是JFrame的一部分。由於各種原因,我必須通過我自己的「更新」方法來調用面板的繪畫方法。在applet中的JPanel佈局
這是我的代碼:
public void onLoad()
{
panel = new JPanel();
panel.setBounds (0,0,Main.WIDTH,Main.HEIGHT);
panel.setLayout (new BoxLayout (panel, BoxLayout.Y_AXIS));
addButton ("button1", panel);
addButton ("button2", panel);
}
private void addButton (String text, Container container)
{
JButton button = new JButton (text);
button.setPreferredSize (new Dimension (100,20));
button.setAlignmentX (Component.CENTER_ALIGNMENT);
container.add (button);
}
public void onRender (Graphics2D g)
{
panel.paint (g);
}
這僅繪製面板的背景色。如果我在addButton方法中添加button.setBounds(...),那麼它會繪製按鈕但不受BoxLayout的影響。
所以我想讓按鈕明顯受到BoxLayout的影響。我對Swing的工作原理並不是很瞭解,所以我不知道該怎麼做。 JFrame有一個pack()方法,我認爲它是我需要的,但是對於JPanels來說有些等價物,因爲JPanels沒有這個方法。
是否使用JApplet類的?我相信Swing組件在常規Applets中不能正確渲染。 – perp 2010-11-18 12:49:06