Почему я не могу получить доступ к функциям getWidth () и getHeight () моей панели?

Я пишу простую программу для проверки базового графического интерфейса. Программа печатает букву в центре экрана и позволяет пользователю перемещать ее с помощью клавиш со стрелками. Все работает нормально, но когда я пытаюсь центрировать букву в начале программы, кажется, что функции getWidth и getHeight не возвращают правильные числа.

Вот фрагмент, содержащий мой класс Panel

static class LinePanel extends JPanel{
    int xCenter = getWidth() /2;
    int yCenter = getHeight() /2;

    private int x = xCenter;
    private int y = yCenter;
    private char keyChar = 'A';

    public LinePanel(){
        addKeyListener(new KeyAdapter(){
            public void keyPressed(KeyEvent e) {
                switch (e.getKeyCode()) {
                    case KeyEvent.VK_DOWN: y += 10; break;
                    case KeyEvent.VK_UP: y -= 10; break;
                    case KeyEvent.VK_LEFT: x -= 10; break;
                    case KeyEvent.VK_RIGHT: x += 10; break;
                    default: keyChar = e.getKeyChar();
                }

                repaint();

            }
        });
    }

    protected void paintComponent(Graphics g){
        super.paintComponent(g);

        g.setFont(new Font("TimesRoman", Font.PLAIN, 24));
        g.drawString(String.valueOf(keyChar), x, y);
    }
}

Почему мои функции getWidth и getHeight возвращают «0»?

Спасибо за любую помощь

6
задан mKorbel 1 December 2011 в 05:20
поделиться