這是用於俄羅斯方塊。玻璃(藍色)留下,控件(紅色面板)位於右側。換句話說,現在我只想將一個框架分爲兩部分:左部分(寬部分)是藍色部分,右部分是紅色部分。而已。但我似乎沒有做到這一點。如何將幀分爲兩部分
所以,我的邏輯是:讓框架有FlowLayout。然後我添加兩個面板,這意味着它們預計會排成一列。
我製備這樣的:
public class GlassView extends JFrame{
public GlassView(){
this.setSize(600, 750);
this.setVisible(true);
this.setLayout(new FlowLayout());
this.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
JPanel glass = new JPanel();
glass.setLayout(new BoxLayout(glass, BoxLayout.Y_AXIS));
glass.setSize(450, 750);
glass.setBackground(Color.BLUE);
glass.setVisible(true);
this.add(glass);
JPanel controls = new JPanel();
controls.setLayout(new BoxLayout(controls, BoxLayout.Y_AXIS));
controls.setSize(150, 750);
controls.setBackground(Color.RED);
controls.setVisible(true);
this.add(controls);
}
}
但只有一個灰色的幀是在屏幕上可見。你能幫我理解爲什麼嗎?
爲了您的實物資料,總是()'和'frame.setVisible()'只是將所有組件的容器後,沒有在這之前撥打電話到'frame.pack。否則,在很多情況下,您可能無法在屏幕上看到內容。 –
如果'JSplitPane'不是你想要的,那麼請考慮[GridBagLayout](http://docs.oracle.com/javase/tutorial/uiswing/layout/gridbag.html),這可能可以輕鬆地完成這項任務。請看看這個[示例](http://stackoverflow.com/a/17640318/1057230),爲了更加清晰,至於如何:-) –
你正在使用'setSize(...)'和許多佈局管理器(大多數?)不尊重大小屬性,而是經常使用preferredSize。 –