Размещение JPanels на JFrame в определенных областях
Извините за то, что не поместил определенный код в предыдущем посте. Я понял, что делаю что-то не так, но теперь у меня другая проблема. Я пытаюсь разместить JPanel в определенном месте на JFrame после нажатия кнопки, но ничего не происходит, вот мой код для моего метода Actionperformed.
public void actionPerformed(ActionEvent e)
{
JPanel pa=new JPanel();
frame.getContentPane().setLayout(null);
pa.setBackground(Color.yellow);
pa.setLocation(50,150);
pa.setSize(150,100);
pa.setBounds(50,150,150,100);
pa.setOpaque(true);
frame.add(pa);
}
1 ответ
Есть много способов сделать это.
использование
setLocation(x, y)
а такжеsetSize(length, width)
использование
setBounds(x, y, length, width)
Если 1 и 2 не работают, посмотрите на менеджеров по макету:
Я настоятельно рекомендую вам взглянуть на JavaDoc менеджеров по расположению. ниже приведены ссылки для каждой из них, а для тех, которые я бы порекомендовал для вашего случая, рядом с ними стоит звездочка (*).
BorderLayout * для общих направлений (СЕВЕР, ЮГ, ВОСТОК, ЗАПАД)
BoxLayout помещает компоненты в одну строку или столбец. Он учитывает запрошенные максимальные размеры компонентов, а также позволяет выравнивать компоненты.
CardLayout позволяет вам реализовать область, которая содержит различные компоненты в разное время, часто управляемые комбинированным полем, с состоянием комбинированного поля, определяющего, какую панель (группу компонентов) отображает CardLayout.
FlowLayout является менеджером по умолчанию для каждого JPanel. Он просто размещает компоненты в один ряд.
GridBagLayout - это сложный, гибкий менеджер макетов. Он выравнивает компоненты, помещая их в сетку ячеек, позволяя компонентам охватывать более одной ячейки. Строки в сетке могут иметь разную высоту, а столбцы сетки могут иметь разную ширину.
GridLayout * просто делает набор компонентов равным по размеру и отображает их в требуемом количестве строк и столбцов.
GroupLayout - это менеджер макетов, разработанный для использования инструментами GUI Builder, но его также можно использовать вручную. GroupLayout работает с горизонтальной и вертикальной раскладками отдельно. Макет определяется для каждого измерения независимо. Следовательно, однако, каждый компонент должен быть определен дважды в макете.
SpringLayout - это гибкий менеджер компоновки, разработанный для использования разработчиками графического интерфейса. Это позволяет вам определить точные отношения между краями компонентов под его контролем. Например, вы можете определить, что левый край одного компонента находится на определенном расстоянии (которое может быть рассчитано динамически) от правого края второго компонента. SpringLayout размещает дочерние элементы своего связанного контейнера в соответствии с набором ограничений.
Отказ от ответственности: большинство из них являются прямыми цитатами для OracleDoc Oracle относительно менеджеров по расположению.