Проблема в том, что вы добавляете второй компонент (Box.createRigidArea) в ту же позицию макета (BorderLayout.CENTER), что и метка.
Результат JFrame.add () совпадает с результатом JFrame.getContentPane (). Add () ...
Таким образом, метка заменяется на RigidArea.
Попробуйте это:
JFrame i_frame = new JFrame("Select Locations");
i_from = new JLabel("From");
i_frame.getContentPane().add(i_from);
// i_frame.add(Box.createRigidArea(new Dimension(2,0)));
i_frame.setLocationRelativeTo(null);
i_frame.setSize(200,200);
i_frame.setVisible(true);
чтобы добавить больше компонентов, измените LayoutManager:
JFrame i_frame = new JFrame("Select Locations");
JLabel i_from = new JLabel("From");
Container pane = i_frame.getContentPane();
pane.setLayout(new BoxLayout(pane, BoxLayout.X_AXIS)); // any LayoutManager you need
pane.add(i_from);
pane.add(Box.createRigidArea(new Dimension(2,0))); // space after JLabel ?
i_frame.setSize(200,200); // better done before setLocationRelativeTo
i_frame.setLocationRelativeTo(null);
i_frame.setVisible(true);
Примечание: если вы «просто» хотите добавить пустую рамку к метке, используйте setBorder () вместо RigidArea:
i_from.setBorder(BorderFactory.createEmptyBorder(2, 2, 2, 2));
[]]