我创建了一个扩展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();
}
Run Code Online (Sandbox Code Playgroud)
我正在使用Eclipse,并且它给出了一个错误,建议我转换getContentPane()为返回a JPanel,但根据我的理解,这应该是它应该返回的内容.我插入System.out.println(getContentPane());并在控制台中说它返回了一个JPanel,所以我有点困惑为什么它需要被投射.这里有什么我想念的吗?谢谢.
Container是JPanel继承层次结构中的父级
getContentPane()返回a Container,在这种情况下,是一个JPanel对象.因此,需要使用强制Container类型转换为更具体的子类型,如下所示:
pane = (JPanel) getContentPane();
Run Code Online (Sandbox Code Playgroud)