Я хочу разместить 6 компонентов, расположенных по вертикали в одной колонке. Кроме того, я хочу пустое пространство 200 пикселей перед первым компонентом в столбце. У меня есть следующий код:Ошибка форматирования BoxLayout
public class MongoMusicApplet extends JApplet{
//*****main menu objects********
private JPanel mainMenuPanel;
private JButton buildingButton;
private JTextField text;
public void init(){
setLayout(new BoxLayout(getContentPane(),BoxLayout.Y_AXIS));
mainMenuPanel=new JPanel();
buildingButton=new JButton("Graph-Building Mode");
text=new JTextField(20);
JLabel label1=new JLabel("Help us improve by entering");
JLabel label2=new JLabel("OR");
JLabel label3=new JLabel("Enter the name of an artist");
JLabel label4=new JLabel("to enter Discovery Mode");
mainMenuPanel.add(Box.createRigidArea(new Dimension(0,200)));
label1.setAlignmentX(Component.CENTER_ALIGNMENT);
mainMenuPanel.add(label1);
buildingButton.setAlignmentX(Component.CENTER_ALIGNMENT);
mainMenuPanel.add(buildingButton);
...add all other components in this order: label 2, label3, text, label4...
add(mainMenuPanel);
}
}
И я получаю следующую структуру:
Так прежде всего, это, кажется, что createRigidArea создает пространство перед началом колонки, а также между некоторыми из компонентов в столбце. Есть ли способ сделать это только для создания пространства перед первым компонентом в столбце?
И, во-вторых, поскольку я выбрал выравнивание как Y_AXIS, почему компоненты не расположены вертикально, с одним компонентом на строку? Я также попытался использовать GridLayout (0,1), но это дало мне то же самое расположение. Как я могу заставить эти компоненты в один вертикальный столбец?
1) Почему код апплета? Если это связано с тем, что учитель указал на это, обратитесь к [Почему учителя CS должны ** останавливаться ** преподавать Java-апплеты] (http://programmers.blogoverflow.com/2013/05/why-cs-teachers-should -stop-учебно-ява-апплеты /). 2) Единственная пустая строка пробела в исходном коде - это все, что требуется *. Пустые строки после '{' или before '}' также типично избыточны. 3) Чтобы лучше помочь, опубликуйте [MCVE] (http://stackoverflow.com/help/mcve) (минимальный полный проверяемый пример) или [SSCCE] (http://www.sscce.org/) (Short, Самостоятельный, правильный пример). –
Используйте «EmptyBorder» для зазора 200px перед первым компонентом. И см. Также [Следует ли мне избегать использования методов Set (Preferred | Maximum | Minimum) в Java Swing?] (Http://stackoverflow.com/q/7229226/418556) (Да.) –
@AndrewThompson, даже с любые методы setSize удалены, я до сих пор не получаю компоненты вертикально сложенными – user50210