我创建了一个扩展 JFrame 的类,默认情况下它会创建一个 JPanel。我试过这个:
public class Main extends JFrame {
JPanel pane;
private static final long serialVersionUID = 1L;
public Main() {
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
int WIDTH = 500, HEIGHT = 500;
setBackground(Color.LIGHT_GRAY);
setSize(WIDTH, HEIGHT);
setTitle("Window");
setLocationRelativeTo(null);
pane = getContentPane();
}
我正在使用 Eclipse,它给出了一个错误,建议我转换 getContentPane()
以返回一个 JPanel
,但据我了解,这就是它应该已经回来了。我插入了 System.out.println(getContentPane());
并且它在控制台中说它正在返回一个 JPanel
,所以我有点困惑为什么它需要转换。我在这里缺少什么吗?谢谢。
最佳答案
Container
是 JPanel
继承层次结构中的父级
getContentPane()
返回一个 Container
,在本例中是一个 JPanel
对象。因此,需要进行强制转换以将 Container
转换为其更具体的子类型,如下所示:
pane = (JPanel) getContentPane();
关于java - 需要强制转换的 getContentPane(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36074278/