可滚动图标化JInternalFrames

时间:2013-10-27 21:42:18

标签: java swing jframe

我用20个JInternalFrames创建了一个JDesktopPane。但是,当我将所有这些图标化时,我无法滚动它们(从左到右)enter image description here

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,以便我可以滚动它们吗?

1 个答案:

答案 0 :(得分:1)

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

无论如何,DesktopManager类负责此行为。调用iconifyFrame()方法。因此,您需要提供自定义的DesktopManager实现。

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