Подскажите, как переместить JPanel с середины сверху (по умолчанию) влево по середине? GridLayout хранит в себе поле кнопок 3х3 - все это содержится в panel, я добавил еще одну панель (p) и поставил FlowLayout.Left, но все равно не получилось. Я думаю, что мне нужно компоновать Layoutы, но я не знаю как.
Код:
package res;
import javax.swing.*;
import java.awt.*;
public class Source extends JPanel {
private JPanel panel, p;
private JButton b1, b2, b3, b4, b5, b6, b7, b8, b9;
//private char x1, x2, x3, y1, y2, y3, z1, z2, z3;
private boolean gameInit, playerWon, compWon;
public Source(){
setBackground(Color.gray);
field();
}
public void field(){
panel = new JPanel();
b1 = new JButton();
b2 = new JButton();
b3 = new JButton();
b4 = new JButton();
b5 = new JButton();
b6 = new JButton();
b7 = new JButton();
b8 = new JButton();
b9 = new JButton();
panel.setPreferredSize(new Dimension(300,300));
panel.setLayout(new GridLayout(3, 3));
panel.add(b1);
panel.add(b2);
panel.add(b3);
panel.add(b4);
panel.add(b5);
panel.add(b6);
panel.add(b7);
panel.add(b8);
panel.add(b9);
add(panel);
p = new JPanel();
p.setBackground(Color.BLACK);
p.setLayout(new FlowLayout(FlowLayout.LEFT));
p.add(panel);
add(p);
}
}
UPD: BorderLayout не работает в строке p.setLayout(new FlowLayout(FlowLayout.LEFT)); (Вместо FlowLayout).
Пожалуйста, не предлагайте сделать это через массив. Я пытаюсь практиковаться основываясь на полученных знаниях и позже оптимизирую код сам. Заранее спасибо!
Все оказалось просто: Source стремиться стать JPanel, поэтому в public Source(){} мы должны описать, как себя будут вести объекты на нем. Вообщем дописываем setLayout(new FlowLayout(FlowLayout.LEFT)); и все
Апостиль в Лос-Анджелесе без лишних нервов и бумажной волокиты
Основные этапы разработки сайта для стоматологической клиники
Продвижение своими сайтами как стратегия роста и независимости