Используя 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);
});
}
. Он создаст рабочий стол с пятью изменяемыми размерами окон.