为什么不能访问面板的getWidth()和getHeight()函数?

我正在编写一个简单的程序来测试基本的GUI。该程序在屏幕中间打印一个字母,并允许用户使用箭头键移动它。一切正常,但是当我尝试在程序开始时将字母居中时,似乎getWidthand

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

}

}

为什么我getWidthgetHeight函数返回“ 0”?

谢谢你的帮助

回答:

我不能说出原因,但:

避免这种情况的一种方法是重写getPreferredSize()函数并返回您的首选大小。

以上是 为什么不能访问面板的getWidth()和getHeight()函数? 的全部内容, 来源链接: utcz.com/qa/399976.html

回到顶部