Java 可滚动图标化JInternalFrames

Java 可滚动图标化JInternalFrames,java,swing,jframe,Java,Swing,Jframe,我用20个金三角做了一个JDesktopPane。但是,当我将它们全部图标化时,我无法滚动浏览它们(从左到右) import javax.swing.*; 导入java.awt.*; 类无标题{ 公共静态JDesktopPane桌面; 公共静态jf框架; 公共静态void main(字符串[]args){ f=新的JFrame(); f、 setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); f、 setVisible(真); f、 设置大小(10001

我用20个金三角做了一个JDesktopPane。但是,当我将它们全部图标化时,我无法滚动浏览它们(从左到右)

import javax.swing.*;
导入java.awt.*;
类无标题{
公共静态JDesktopPane桌面;
公共静态jf框架;
公共静态void main(字符串[]args){
f=新的JFrame();
f、 setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
f、 setVisible(真);
f、 设置大小(10001000);
桌面=新的JDesktopPane();
f、 增加(办公桌);
f、 设置内容窗格(桌面);
f、 设置大小(1200800);
f、 设置大小(1201801);
对于(int i=0;i<10;i++){
JInternalFrame j=新JInternalFrame(“测试”,真,真,真,真);
案头。添加(j);
j、 setVisible(真);
j、 设置大小(300500);
}
对于(int a=0;a<10;a++){
JInternalFrame j=新的JInternalFrame(“test2”,真,真,真,真);
案头。添加(j);
j、 setVisible(真);
j、 设置大小(300500);
}
}
}

例如,有什么方法可以将JinternalFrame图标化到JScrollPane中,以便我可以滚动浏览它们吗?

看起来您正在使用Mac。在Windows中,图标在水平空间不足时会层叠在一起。虽然如果减小桌面的宽度,Windows仍然存在问题

无论如何,
DesktopManager
类对这种行为负责。调用IConifFrame()方法。因此,您需要提供一个自定义DesktopManager实现

也许你可以窃取Windows实现,并将其用于Mac?

此相关软件维护一个可能提供起点的
列表。
import javax.swing.*;
import java.awt.*;
class Untitled {
    public static JDesktopPane desk;
    public static JFrame f;
    public static void main(String[] args) {
        f = new JFrame();
        f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        f.setVisible(true);
        f.setSize(1000,1000);
        desk = new JDesktopPane();
        f.add(desk);
        f.setContentPane(desk);
        f.setSize(1200,800);
        f.setSize(1201,801);
        for(int i = 0; i < 10; i++){
            JInternalFrame j = new JInternalFrame("test",true,true,true,true);
            desk.add(j);
            j.setVisible(true);
            j.setSize(300,500);
        }
        for(int a = 0; a < 10; a++){
            JInternalFrame j = new JInternalFrame("test2",true,true,true,true);
            desk.add(j);
            j.setVisible(true);
            j.setSize(300,500);
        }
    }
}