在 Java Swing 中安排 JInternalFrames 是否有任何默认功能?
我想在我的 Java Swing 应用程序中拥有 Cascade、Tile 等功能,如下所示:http: //www.codeproject.com/KB/cs/mdiformstutorial.aspx 我只能在他们安排的地方找到代码手动。Java Swing 中是否不支持此功能,还是我有点盲目?
在 Java Swing 中安排 JInternalFrames 是否有任何默认功能?
我想在我的 Java Swing 应用程序中拥有 Cascade、Tile 等功能,如下所示:http: //www.codeproject.com/KB/cs/mdiformstutorial.aspx 我只能在他们安排的地方找到代码手动。Java Swing 中是否不支持此功能,还是我有点盲目?
我以前做过级联,但我是通过移动帧像素来创建效果的,然后手动执行大小调整和移动。
我确信(尽管我现在至少 2 年没有寻找)swing 没有其他方法来执行这些操作,我敢肯定某个地方的某个人已经编写了一个第三方库来固定到 swing 应用程序上,如果不是我会写一个并开源它:)
编辑,
只是想你可以做瓷砖等的另一种方法是编写一个自定义布局管理器,为你完成繁重的工作,比如 FrameTileLayoutManager,然后使用它......这只是一个想法。
这不是真正的解决方案,而是更多的黑客。如果您可以在渲染框架之前读取桌面窗格的当前宽度,则可以级联/堆叠内部框架。
int c=desktopPane.getAllFrames().length;
Random r=new Random();
if (c<3){
RegistryDash registry = new RegistryDash();
registry.setVisible(true);
desktopPane.add(registry);
//registry.setLocation(r.nextInt(200),r.nextInt(200));
registry.setLocation(c*50,c*50);
try {
registry.setSelected(true);
} catch (java.beans.PropertyVetoException e) {
}
}else{
JOptionPane.showMessageDialog(this,"More than three similar windows are currently active. Close some to allow new windows.","Multiple Window Error",JOptionPane.WARNING_MESSAGE);
}