我还尝试将标签封装在dekstop窗格内。但是,出现一条消息,提示无法将组件封装在非空容器中。任何帮助将不胜感激
答案 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);
});
}
它将创建一个带有五个可调整大小窗口的桌面。