You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

JDesktopPane无法显示添加的组件问题求助

JDesktopPane中JInternalFrame无法显示的问题

我正在学习JDesktopPane以便在工作项目中使用。目前遇到的问题是:我想在JDesktopPane中使用JInternalFrame,该组件在普通JPanel中可正常显示但无法移动,而在JDesktopPane中添加的任何组件都无法显示。

测试代码

主类代码

import javax.swing.*;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

public class Internal_FrameShowtst extends JFrame{

    Internal_FrameShowtst(){
        BorderLayout bl = new BorderLayout();
        JDesktopPane p = new JDesktopPane();
        JPanel p1 = new JPanel();
        JButton b = new JButton("click");
        JInternalFrame in = new JInternalFrame("Test");
        Internal_Frametst ift = new Internal_Frametst();
        b.addActionListener(new ActionListener() {
            @Override
            public void actionPerformed(ActionEvent e) {

                //p1.add(new JLabel("hola"));
                //in.add(p1);
                //in.setVisible(true);
                ift.setVisible(true);
            }
        });
        p1.add(b);
        bl.addLayoutComponent(p,BorderLayout.CENTER);
        //p.add(in);
        p.add(ift);
        p.repaint();
        setLayout(bl);
        add(p);
    }

    public static void main(String[] args) {
        SwingUtilities.invokeLater(new Runnable() {
            @Override
            public void run() {
                new Internal_FrameShowtst().setVisible(true);
            }
        });
    }
}

自定义内部框架类代码

import javax.swing.*;

public class Internal_Frametst extends JInternalFrame {

    Internal_Frametst(){
        JPanel p = new JPanel();
        JLabel label = new JLabel("Halo");
        setIconifiable(true);
        //setIcon(true);
        setClosable(true);
        p.add(label);
        p.setSize(300,300);
        add(p);
        //setVisible(true);
    }
}

已尝试的解决方案

  • 直接添加组件、添加JPanel、添加内部框架
  • 在主类中创建内部框架、自定义内部框架类
  • 为普通面板和桌面面板使用布局管理器

以上方法均未解决问题。

内容的提问来源于stack exchange,提问作者Alfredo Aparicio

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.03 19:05:45