在Java Swing中是否有用于安排JInternalFrames的默认功能?
我想在我的Java Swing应用程序中使用Cascade,Tile等功能,如下所示:http://www.codeproject.com/KB/cs/mdiformstutorial.aspx 我只能找到他们手动安排的代码。在Java Swing中是不是对此没有支持,或者我有点失明?
答案 0 :(得分:6)
之前我已经完成了级联,但我通过移动帧像素来创建影响我不知道另一种方式这样做,我会弄清楚JDesktopPane有多大然后得到你内部帧的数组getAllFrames(),然后手动执行大小调整和移动。
我确信(尽管我现在至少已经没有找过2年了)摇摆没有其他方法可以执行这些操作,我确信有人在某个地方有一个写第三方库来固定摇摆应用程序,如果不是我会写一个并开源它:))
编辑,
只是想到你可以做瓦片等的另一种方式,就是编写一个自定义布局管理器,为你做一些类似于FrameTileLayoutManager的繁重工作,然后使用它......它只是一个想法。
答案 1 :(得分:0)
这并不是真正的解决方案,而是更多的Hack。如果可以在渲染框架之前阅读桌面窗格的当前宽度,则可以层叠/堆叠内部框架。
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);
}