0

我用 20 个 JInternalFrames 制作了一个 JDesktopPane。但是,当我将它们全部图标化时,我无法滚动它们(从左到右)在此处输入图像描述

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);
        }
    }
}

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

4

1 回答 1

1

看起来你正在使用 Mac。在 Windows 中,当图标用完水平空间时,它们会相互叠加。尽管如果您减小桌面的宽度,Windows 仍然会出现问题。

无论如何,DesktopManager班级对这种行为负责。调用 iconifyFrame() 方法。所以你需要提供一个自定义的 DesktopManager 实现。

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

于 2013-10-27T21:57:57.620 回答