Формат 3 JPanels с использованием BorderLayout
Привет, ребята,
выше скриншот моего кадра, как она выглядит на данный момент. Я хочу, чтобы первый ярлык PlatformTest1 начинался после красной полосы. Красную полоску я нарисовал в себе для ясности. Я использовал Borderlayout с 3 Janels, один на западе, на севере и в центре. Я заполняю Северные и Западные панели ярлыками, которые я получаю из двух списков. В Center-Panel мне нужна сетка с размером list1.size() * list2.size(). Но я просто не получил первый ярлык, добавленный в позицию, где находится красная полоса. Я попытался добавить пустой ярлык, но это не выглядит великолепно.
Вот мой код до сих пор:
public DisplayMapping() {
final int x = list1.size();
final int y = list2.size();
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setBounds(100, 100,600, 500);
contentPane = new JPanel();
contentPane.setBorder(new EmptyBorder(5, 5, 5, 5));
setContentPane(contentPane);
contentPane.setLayout(new BorderLayout(0, 0));
JPanel panelApps = new JPanel();
panelApps.setBorder(new LineBorder(new Color(0, 0, 0), 2));
contentPane.add(panelApps, BorderLayout.WEST);
panelApps.setLayout(new GridLayout(y, 1));
JPanel panelHW = new JPanel();
panelHW.setBorder(new LineBorder(new Color(0, 0, 0), 2));
contentPane.add(panelHW, BorderLayout.NORTH);
panelHW.setLayout(new GridLayout(1,x));
JPanel panelGrid = new JPanel();
contentPane.add(panelGrid, BorderLayout.CENTER);
panelGrid.setLayout(new GridLayout(1, 0, 0, 0));
for(String s : list1)
{
JLabel lbl = new JLabel();
lbl.setText(s);
panelApps.add(lbl);
panelApps.revalidate();
panelApps.repaint();
contentPane.revalidate();
contentPane.repaint();
}
for(String s : XMLParser.HardwareListGUI)
{
JLabel lbl = new JLabel();
lbl.setText(s);
panelHW.add(lbl);
panelHW.revalidate();
panelHW.repaint();
contentPane.revalidate();
contentPane.repaint();
}
Я также попытался установить пределы PanelApps немного больше в направлении х, но не работал вне либо. Надеюсь, кто-то может здесь помочь.
Заранее спасибо.
выглядит хорошо, этот подход, я попробую. Благодарю. – Alika87
@ Alika87 Пожалуйста, отметьте мой ответ как принятый, если он сработает для вас. – gla3dr
Я пробовал, но не так сложно. Я не могу поставить 2 панели на «Center Panel», и если я поместил панельGrid в gridHW, это выглядит странно. Так что до сих пор он не работал для меня. – Alika87