前几天我的子窗口不能最大化,经朋友们帮助已解决。万分谢谢大家啦!
我还是把我的情况先说一下啊。
我想建立MDI多文档界面,用了JinternalFrame,JdesktopPane来做。
从主窗口Frame1里想打开子窗口Frame31。子窗口的代码继承自JinternalFrame
public class Frame3 extends JInternalFrame {
....
public Frame3() {
super("子窗口",true,true,true,true);
try {
jbInit();
} catch (Exception exception) {
exception.printStackTrace();
}
}
}2。主窗口中用了JdesktopPanepublic class Frame1 extends JFrame {
JDesktopPane mydesktopPane; //声明一个JdesktopPane容器类的变量
...
public Frame1() {
Container mycontentPane = this.getContentPane(); //声明一个Container容器
mydesktopPane = new JDesktopPane(); //生成JdesktopPane容器型的容器实例
mycontentPane.add(mydesktopPane);
setSize(300, 300);//??????????????????????????
setResizable(true);
show(); //????????????????????没有此句将不显示子窗口
.....
} public void jButton1_actionPerformed(ActionEvent e) {
Frame2 bb = new Frame2();
bb.show();
}3。用于打开子窗口的代码
public void jButton2_actionPerformed(ActionEvent e) {
Frame3 aa = new Frame3();
aa.setLocation( 20,20
aa.setSize(200,200);
aa.setVisible(true);//或aa.show();
mydesktopPane.add(aa); }
主要代码都帖出来了。我的问题是
一。现在主窗口打开最大化后,
将里面的子窗口最大化时,并不能放大到占满主窗口大小,只占了主窗口的一小部分。
我查看后发现
setSize(300, 300);//??????????????????????????
这句修改参数后可以改变子窗口在主窗口中可最大化的大小程度。
我一直以为setSize(300, 300);是设置主窗口Frame1的大小。
其实这句怎么改变的是mydesktopPane容器的大小啊,我不明白请明白人讲解一下吧。谢谢。我现在虽然通过设置setSize(300, 300)的参数来增大子窗口可最大化的程度,我理解的是也就是
我扩大了容器的大小,子窗口即使最大化也不能超过mydesktopPane容器大小。如果是这样的话我该
怎么让mydesktopPane容器扩大到占满主窗口大小呢。
可是我怎么写代码才能将子窗口放大到占满主窗口呢。我迷惑中。。请帮忙啊。
我还是把我的情况先说一下啊。
我想建立MDI多文档界面,用了JinternalFrame,JdesktopPane来做。
从主窗口Frame1里想打开子窗口Frame31。子窗口的代码继承自JinternalFrame
public class Frame3 extends JInternalFrame {
....
public Frame3() {
super("子窗口",true,true,true,true);
try {
jbInit();
} catch (Exception exception) {
exception.printStackTrace();
}
}
}2。主窗口中用了JdesktopPanepublic class Frame1 extends JFrame {
JDesktopPane mydesktopPane; //声明一个JdesktopPane容器类的变量
...
public Frame1() {
Container mycontentPane = this.getContentPane(); //声明一个Container容器
mydesktopPane = new JDesktopPane(); //生成JdesktopPane容器型的容器实例
mycontentPane.add(mydesktopPane);
setSize(300, 300);//??????????????????????????
setResizable(true);
show(); //????????????????????没有此句将不显示子窗口
.....
} public void jButton1_actionPerformed(ActionEvent e) {
Frame2 bb = new Frame2();
bb.show();
}3。用于打开子窗口的代码
public void jButton2_actionPerformed(ActionEvent e) {
Frame3 aa = new Frame3();
aa.setLocation( 20,20
aa.setSize(200,200);
aa.setVisible(true);//或aa.show();
mydesktopPane.add(aa); }
主要代码都帖出来了。我的问题是
一。现在主窗口打开最大化后,
将里面的子窗口最大化时,并不能放大到占满主窗口大小,只占了主窗口的一小部分。
我查看后发现
setSize(300, 300);//??????????????????????????
这句修改参数后可以改变子窗口在主窗口中可最大化的大小程度。
我一直以为setSize(300, 300);是设置主窗口Frame1的大小。
其实这句怎么改变的是mydesktopPane容器的大小啊,我不明白请明白人讲解一下吧。谢谢。我现在虽然通过设置setSize(300, 300)的参数来增大子窗口可最大化的程度,我理解的是也就是
我扩大了容器的大小,子窗口即使最大化也不能超过mydesktopPane容器大小。如果是这样的话我该
怎么让mydesktopPane容器扩大到占满主窗口大小呢。
可是我怎么写代码才能将子窗口放大到占满主窗口呢。我迷惑中。。请帮忙啊。
Dimension ds=tk.getScreenSize();
width=ds.getWidth() ;
height=ds.getHeight() ;
setSize(width,height);
Frame3 aa = new Frame3();
aa.setLocation( 20,20
aa.setSize(350,250);
Dimension wndSize=Toolkit.getDefaultToolkit().getScreenSize();
int screenHeight = wndSize.height;
int screenWidth = wndSize.width;
setSize(screenWidth , screenHeight );
aa.setVisible(true);//或aa.show();
mydesktopPane.add(aa);可是不行