添加jpanel和绘画到JInternalFrames



是否可以将带有轮廓和绘制内容的JPanel添加到JInternalFrame中?换句话说,就像下面这样:

JFrame frame = new JFrame();
JDesktopPane desktop = new JDesktopPane();
JInternalFrame iframe = new JInternalFrame();
JPanel panel = new JPanel();
iframe.setVisible(true);
iframe.setSize(new Dimension(300, 200));
iframe.add(panel)
desktop.add(iframe);
frame.setContentPane(desktop);
panel.setBorder(BorderFactory.createLineBorder(Color.black));
panel.setBounds(0, 0, 100, 100);

和在paint函数中(在JFrame类中)有

public void paint(Graphics graphics){
    graphics.//insert method
}

,并且仍然在JInternalFrame的面板中显示它。

无论出于什么原因,JPanel和任何绘画功能都没有显示。有人能帮我理解如何完成这个或解释我做错了什么吗?

和在paint函数中(在JFrame类中)有

public void paint(Graphics graphics){
    graphics.//insert method
}

不要重写JFrame的paint()方法。很少有任何理由这样做。这将导致一个问题,因为您破坏了绘制方法,现在子组件将不会被绘制。

JInterrnalFrame就像JFrame(或JDialog)。你可以给它添加任何组件

iframe.setVisible(true);
iframe.setSize(new Dimension(300, 200));
iframe.add(panel)

同样,在使框架可见之前向框架添加组件。然后布局管理器可以做他们的工作。

最新更新