如何在NetBeans的jdesktop窗格中插入jlabel。当我尝试拖放时没有用吗?桌面窗格移位

时间:2019-06-07 19:57:20

标签: netbeans

我还尝试将标签封装在dekstop窗格内。但是,出现一条消息,提示无法将组件封装在非空容器中。任何帮助将不胜感激

1 个答案:

答案 0 :(得分:0)

使用Netbeans 11.0,我能够将JLabel拖到JDesktopPane中,但没有看到您报告的错误。但是,我认为JDesktopPane只是作为JInternalFrame的容器,而不是直接嵌入其他组件。这是针对MDI应用程序的,这些应用程序近来很少见。 查看相关的Swing Tutorial以获得背景信息。 我在这里还提供了一个最小的示例,您可以将其粘贴到Netbeans中的空类中

public static void main(String[] args) {
    JFrame frame = new JFrame();
    frame.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
    JDesktopPane desktop_pane = new JDesktopPane();
    frame.getContentPane().add(desktop_pane);
    for (int i = 1; i <= 5; ++i) {
        JInternalFrame internal = new JInternalFrame(String.format("Window %d", i), true, true, true, true);
        internal.setSize(150, 80);
        internal.setLocation(i * 50, i * 50);
        internal.setVisible(true);
        desktop_pane.add(internal);
    }
    desktop_pane.setPreferredSize(new Dimension(800, 600));
    frame.pack();
    SwingUtilities.invokeLater(() -> {
        frame.setVisible(true);
    });
}

它将创建一个带有五个可调整大小窗口的桌面。