我正在扩展一个 JPanel 来显示一个游戏板,并在底部添加一个 JEditorPane 来保存一些状态文本。不幸的是,游戏板渲染得很好,但是 JEditorPane 只是一个空白的灰色区域,直到我突出显示其中的文本,那时它将渲染突出显示的任何文本(但不是其余的)。如果我正确理解 Swing,它应该可以工作,因为 super.paintComponent(g) 应该呈现其他子项(即 JEditorPane)。告诉我,伟大的 stackoverflow,我犯了什么愚蠢的错误?
public GameMap extends JPanel {
public GameMap() {
JEditorPane statusLines = new JEditorPane("text/plain","Stuff");
this.setLayout(new BoxLayout(this,BoxLayout.PAGE_AXIS));
this.add(new Box.Filler(/*enough room to draw my game board*/));
this.add(statusLines);
}
public void paintComponent(Graphics g){
super.paintComponent(g);
for ( all rows ){
for (all columns){
//paint one tile
}
}
}
}