java - JComponent 子类未出现

标签 java swing paintcomponent

好的。我正在编写我的 Ball 类,但球没有显示。我尝试将其他组件添加到我的容器中并且它们被显示,所以我认为可以安全地假设问题出在我的球上。类代码:

import java.awt.Color;
import java.awt.Graphics;

import javax.swing.JComponent;


public class Ball extends JComponent {

public Ball() {
    ballX  = (Window.WINDOW_WIDTH - BALL_DIAMETER) / 2;
    ballY  = (Window.WINDOW_HEIGHT - BALL_DIAMETER) / 2;
}

@Override
public void paintComponent(Graphics g) {
    super.paintComponent(g);
    g.drawRect(5, 5, 50, 50);
    g.setColor(Color.GREEN);
    g.fillOval(ballX, ballY, BALL_DIAMETER, BALL_DIAMETER);
    g.dispose();

}
public void setX(int x) {
    ballX = x;
}
public void setY(int y) {
    ballY = y;
}

private int ballX;
private int ballY;
public static final int BALL_DIAMETER = 30;
}

第一个矩形用于测试。它也没有出现......

最佳答案

确保您的组件的首选尺寸大于 (0, 0):

@Override
public Dimension getPreferredSize() {
    return new Dimension(500, 500);
}

关于java - JComponent 子类未出现,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22334940/

相关文章:

java - 如何禁用java中的单选按钮组

java - Netbean GUI界面窗口关闭

java - 尝试使用 GridLayout 向 JPanel 添加滚动条,但 JCheckBoxes 只是变小了

java - 列表迭代类型不匹配

java - 为什么 Java swing 中没有将新的 Graphics 对象传递给 PaintComponent 方法?

java - 单击时画一个点

java - 使用 JSTL,如何读取 set 的元素,以便它们按 "date"(java.util.Date) 属性排序?

java - 如何根据 Java 中的给定深度深度选择节点?

java - 更新在 JDBC 中不起作用

Java 没有绘制所需的图形