将JPanels和绘画添加到JInternalFrames

时间:2015-10-10 23:58:14

标签: java swing user-interface jpanel paint

是否可以将带有轮廓和绘制内容的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和任何绘画功能都没有出现。任何人都可以帮助我理解如何实现这一点或解释我做错了什么?

1 个答案:

答案 0 :(得分:1)

  

并且在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)

此外,在使框架可见之前,将组件添加到框架中。然后布局经理可以完成他们的工作。