Для тех, кто не использует Windows, файл для изменения - netbeans-8.0/etc/netbeans.conf
, а строка (строки) для изменения:
netbeans_jdkhome="/usr/lib/jvm/java-8-oracle"
комментирует старое значение и вставляет новое значение
Используйте GridLayout
на imgPanel
и добавьте метки с помощью петли. Обязательно центрируйте текст метки, используя SwingConstants.CENTER
.
Все метки будут на равном расстоянии друг от друга, и вам не нужно устанавливать какие-либо вставки или поля.
List<String> labels = Arrays.asList("STD", "AIRLINE", "DESTINATION", "FLIGHT", "GATE", "STATUS");
imgPanel.setLayout(new GridLayout(1, labels.size())); // 1 row, 6 columns
labels.stream().forEach(s -> {
JLabel label = new JLabel(s, SwingConstants.CENTER); // centered label text
label.setFont(new Font("Century Gothic", Font.BOLD, 28));
label.setForeground(new Color(255, 255, 255));
imgPanel.add(label);
});
Вы также можете просто установить макет перед тем, как начинать добавлять ярлыки, но это более громоздко и не динамично.
imgPanel.setLayout(new GridLayout(1, 6)); // Six labels tiled horizontally
И не забудьте центрировать текст вашего ярлыка.
schedHd = new JLabel("STD", SwingConstants.CENTER);
airlineHd = new JLabel("AIRLINE", SwingConstants.CENTER);
// etc...
Спасибо всем, кто ответил на мой вопрос. Позже я обнаружил, что я не определил явно макет для каждого из контейнеров (панелей), которые я объявил перед добавлением к ним некоторого содержимого (меток), поэтому при восстановлении окна измерение имеет тенденцию разбрасываться. Хотя это может быть громоздким, но мне нравится иметь абсолютный контроль над позицией каждого элемента в окне. Еще раз спасибо
Ниже приведен пример того, как я решил это;
//After initializing the imgPanel
imgPanel.setLayout(null); //explicitly declare the imgPanel layout to null
JLabel lbl = new JLabel("STD");
imgPanel.add(lbl)
Insets imgPanelInsets = imgPanel.getInsets(); //define the components insets
Dimension sizeImg = lbl.getPreferredSize(); //define the components dimension
lbl.setBounds(100 + imgPanelInsets.left, 5 + imgPanelInsets.top,
sizeImg.width + 5, sizeImg.height + 5);
JLabel lbl2 = new JLabel("AIRLINE");
imgPanel.add(lbl2)
sizeImg = lbl2.getPreferredSize();
lbl2.setBounds(100 + imgPanelInsets.left, 5 + imgPanelInsets.top,
sizeImg.width + 5, sizeImg.height + 5);