@P_Alexander
First head

Как узнать размер JPanel?

При вызове метода getSize() он возвращает 0. Как мне узнать размер JPane?
Немного поясню что я хочу сделать! Есть фрейм с размерами 700 на 400 на него я устанавливаю две панели и на панели вешаю GridBagLayout(). Так вот на первой панели panelButton стоит два Jлейбла и два Jтекстфилда, а вторая panelGrid располагается ниже и в данном случае она залита черным цветом только для видимости. Так вот мне нужно узнать размер panelGrid, для этого что бы в ней нарисовать сетку, но что бы сетку нарисовать мне нужно знать размеры ее, а при вызове методов которые возвращаю размеры или ширину или длину, все это приводи к 0.
Вот код:
public class LifeGame extends JFrame
{
public static final int DEF_W = 700;
public static final int DEF_H = 400;
private int standartX = 10;
private int standartY = 10;
private GridBagLayout gbl;
private GridBagConstraints c;
private JPanel panelButon;
private JPanel panelGrid;
private JTextField sizeGridX;
private JTextField sizeGridY;
private JLabel labelX;
private JLabel labelY;

public LifeGame()
{
setSize(DEF_W,DEF_H);
panelButon = new JPanel();
panelGrid = new JPanel();
gbl = new GridBagLayout();
c = new GridBagConstraints();
panelButon.setLayout(gbl);
panelGrid.setLayout(gbl);

labelX = new JLabel("SizeX");
c.gridx = GridBagConstraints.RELATIVE;
c.gridy = 0;
c.gridheight = 1;
c.gridwidth = 1;
c.anchor = GridBagConstraints.NORTHWEST;
//c.fill = GridBagConstraints.HORIZONTAL;
c.weightx = 0.0;
c.weighty = 0.0;
c.ipadx = 0;
c.ipady = 0;
c.insets = new Insets(5, 5, 0, 0);
panelButon.add(labelX, c);

sizeGridX = new JTextField(5);
c.gridx = GridBagConstraints.RELATIVE;
c.gridy = 0;
c.gridheight = 1;
c.gridwidth = 1;
c.anchor = GridBagConstraints.NORTHWEST;
//c.fill = GridBagConstraints.HORIZONTAL;
c.weightx = 0.0;
c.weighty = 0.0;
c.ipadx = 0;
c.ipady = 0;
c.insets = new Insets(5, 5, 0, 0);
panelButon.add(sizeGridX, c);

labelY = new JLabel("SizeY");
c.gridx = GridBagConstraints.RELATIVE;
c.gridy = 0;
c.gridheight = 1;
c.gridwidth = 1;
c.anchor = GridBagConstraints.NORTHWEST;
//c.fill = GridBagConstraints.HORIZONTAL;
c.weightx = 0.0;
c.weighty = 0.0;
c.ipadx = 0;
c.ipady = 0;
c.insets = new Insets(5, 5, 0, 0);
panelButon.add(labelY, c);

sizeGridY = new JTextField(5);
c.gridx = GridBagConstraints.RELATIVE;
c.gridy = 0;
c.gridheight = 1;
c.gridwidth = 1;
c.anchor = GridBagConstraints.NORTHWEST;
//c.fill = GridBagConstraints.HORIZONTAL;
c.weightx = 1.0;
c.weighty = 0.0;
c.ipadx = 0;
c.ipady = 0;
c.insets = new Insets(5, 5, 0, 0);
panelButon.add(sizeGridY, c);

c.gridx = 0;
c.gridy = 1;
c.gridheight = GridBagConstraints.REMAINDER;
c.gridwidth = GridBagConstraints.REMAINDER;
c.anchor = GridBagConstraints.NORTH;
c.fill = GridBagConstraints.BOTH;
c.weightx = 1.0;
c.weighty = 1.0;
c.ipadx = 0;
c.ipady = 0;
c.insets = new Insets(5, 0, 0, 0);
//panelGrid.add(new Button());
panelGrid.setBackground(Color.BLACK);
panelButon.add(panelGrid, c);
add(panelButon);
//pack();
}
}
  • Вопрос задан
  • 275 просмотров
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы
Bell Integrator Ульяновск
До 400 000 ₽
Bell Integrator Хабаровск
До 400 000 ₽
Bell Integrator Ижевск
До 400 000 ₽
01 мая 2024, в 02:11
5000 руб./за проект
01 мая 2024, в 00:29
2000 руб./за проект
01 мая 2024, в 00:20
15000 руб./за проект