最近我也在研究JInternalFrame,期间也遇到过你所提到的问题。今天我把我研究的结果告诉你一下。
(1),要隐藏JInternalFrame的标题栏就用((BasicInternalFrameUI)yourInternalFrame.getUI()).setNorthPane(null);。要隐藏JInternalFrame的边框要用yourInternalFrame.setBorder(BorderFactory.createEmptyBorder());。
(2)要显示标题栏和边框要用yourInternalFrame.updateUI();。
(3),如果你要在最大化的时候去除标题栏和边框就得重载JInternalFrame的setMaximum(boolean b)函数,具体如下:
public void setMaximum(boolean b) throws PropertyVetoException {
super.setMaximum(b);
if(b){
((BasicInternalFrameUI)this.getUI()).setNorthPane(null);
super.setBorder(BorderFactory.createEmptyBorder());
}
}
还有如果你想在JMenuBar中添加控制JInternalFrame的按钮,建议你用一个JLabel放置到JMenuBar的。具体步骤如下:
1.在JLabel上添加一张图片,该图片中有三个图标分别是最小化,最大化,关闭。(该图片可以到Photoshop中去截取)。
2.在你确定已经把所有要用的菜单都添加到JMenubar后就用yourMenubar.add(Box.createHorizontalGlue());来设置yourMenubar的布局
3.将第1步中的Label直接添加到yourMenubar中, yourMenubar.add(yourLabel);
以上为我的研究结果,具体如何用那三个图标控制JInternalFrame就看你自己的实现。