У меня есть рамка, внутри этого кадра У меня есть панель с макетом коробки, внутри этой панели у меня еще четыре панели.установить пользовательское расположение компонента в макете окна
mainFrame = new JFrame("Basket Game");
mainPanel = new JPanel();
mainPanel.setLayout(new BoxLayout(mainPanel, BoxLayout.Y_AXIS));
mainPanel.add(options);
mainPanel.add(pname);
mainPanel.add(info);
mainPanel.add(gamearea);
mainFrame.setContentPane(mainPanel);
mainFrame.pack();
mainFrame.getContentPane().setBackground(Color.LIGHT_GRAY);
mainFrame.setResizable(false);
mainFrame.setVisible(true);
mainFrame.setSize(600,600);
форма выглядит следующим образом:
Первая 3 панель нормально для меня. Но для последней панели (черный) я хочу добавить некоторые компоненты с пользовательскими координатами. Но когда я пытаюсь добавить их с пользовательскими координатами:
basket.setLocation(500, 500);
gamearea.add(basket);
Он идет прямо сверху по центру панели (координаты не влияет на это место)
Когда я поставил gameareI
сек layout to null
Я не вижу свою метку на панели. Я думаю, что я должен сделать что-то дополнительное для этого. Как я могу это сделать?
Ваше главное окно - только 600x600. В строке заголовка «Параметры», «Имя игрока» и «Информация» y = 500, вероятно, находится под нижней частью панели. – AJNeufeld
Вы понимаете, как работает менеджер компоновки? Вы понимаете, какую ответственность несет менеджер компоновки? Вы понимаете, кто сбрасывает API с менеджером компоновки? Если вы этого не сделаете, нулевой макет - это не тот выбор, который вы ищете. Почти во всех случаях, когда вы думаете, что хотите нулевой макет, вы, вероятно, этого не делаете. В тех редких случаях нулевой макет может быть полезен, пользовательский макет приведет к гораздо меньшему количеству проблем и переделке – MadProgrammer