为什么不能访问面板的getWidth()和getHeight()函数?
我正在编写一个简单的程序来测试基本的GUI。该程序在屏幕中间打印一个字母,并允许用户使用箭头键移动它。一切正常,但是当我尝试在程序开始时将字母居中时,似乎getWidth
and
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”?
谢谢你的帮助
回答:
我不能说出原因,但:
避免这种情况的一种方法是重写getPreferredSize()
函数并返回您的首选大小。
以上是 为什么不能访问面板的getWidth()和getHeight()函数? 的全部内容, 来源链接: utcz.com/qa/399976.html