Warum kann ich nicht den Zugang zu meinem panel getWidth() und getHeight () - Funktionen?

Ich Schreibe ein einfaches Programm zum test aus grundlegenden GUI. Das Programm druckt einen Buchstaben in der Mitte des Bildschirms und ermöglicht es dem Benutzer, um es zu bewegen mit den Pfeiltasten. Funktioniert alles einwandfrei, aber wenn ich versuche, um die Mitte der Buchstabe am Anfang des Programms, es scheint, dass die getWidth und getHeight Funktionen nicht ordnungsgemäße Rückgabe der zahlen.

Hier ist das snippet mit meiner Panel Klasse

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);
    }
}

Warum sind meine getWidth und getHeight Funktionen zurückgeben '0'?

Vielen Dank für jede Hilfe

InformationsquelleAutor KAM1KAZEKOALA | 2011-12-01

Schreibe einen Kommentar