Java getheight () и getWidth () внутренней панели без установки фиксированного размера - PullRequest
0 голосов
/ 28 ноября 2018

Я хочу получить высоту и ширину внутренней панели.Я установил высоту и ширину на 100% с помощью Miglayout.пока я выполняю свой код, я получаю высоту и ширину как ноль.

class MiglayoutExample extends JFrame {

static JFrame frame;
public static void main(String[] args) {
    frame = new JFrame("frame");

    JPanel bluePanel = new JPanel();
    bluePanel.setLayout(new MigLayout());
    bluePanel.setBackground(Color.BLUE);

    JPanel redPanel = new JPanel();
    redPanel.setBackground(Color.RED);

    bluePanel.add(redPanel, "width 100%, height 100%");

    frame.add(bluePanel);

    frame.setSize(600, 600);
    System.out.println("bluePanel.getHeight() = " + bluePanel.getHeight()); //Output 0
    System.out.println("bluePanel.getWidth() = " + bluePanel.getWidth());       //Output 0
    System.out.println("redPanel.getHeight() = " + redPanel.getHeight());       //Output 0
    System.out.println("redPanel.getWidth() = " + redPanel.getWidth());         //Output 0

    frame.show();
}
}

enter image description here

1 Ответ

0 голосов
/ 28 ноября 2018

Ваши панели не имеют размеров.Вы должны установить размер вашей панели

redPanel.setSize(600, 600);
bluePanel.setSize(600, 600);

или получить размеры рамки

    System.out.println("frame.getHeight() = " + frame.getHeight()); 
    System.out.println("frame.getWidth() = " + frame.getWidth()); 
...