您的问题是您滥用继承。您的JVMDiagram正在扩展JVMComponent,但不应该。是的,您获得了JVMComponent的getWidth()和getHeight()方法,但是它们没有任何意义,因为JVMDiagram没有作为组件添加到GUI中,不应作为组件添加,并且高度为0,并且宽度(打印出来)。
重新考虑您的设计, 不要
为此使用继承。如果需要,可以将值从一个对象传递到另一个。例如,在JVMComponent中创建一个JVMDiagram字段并将其初始化。在JVMComponent的paintComponent方法的JVMDiagram绘制方法中使用Graphics2D传递宽度和高度。
附带问题:永远不要
repaint()从绘画方法内部进行调用,也不要从绘画方法内部进行调用的代码进行调用。



