问题是这样的:
在JFrame上建立了菜单,点击菜单项Open打开一个JInternalFrame,命名为internalFrame1,将internalFrame1最小化后,我想再次点击菜单项Open将最小化的internalFrame1显示为当前选中状态,且大小与最小化前一致,怎么办呢?我实验了很多,但是达不到这个效果,我的测试代码如下: JDesktopPane desktop = new JDesktopPane();
static final Integer DOCLAYER = new Integer(5); /* 这是点击Open菜单的处理代码 */
public void openInternalFrame1() {
if (internalFrame1 == null) {
internalFrame1 = new InternalFrame1();
desktop.add(internalFrame1, DOCLAYER); try {
internalFrame1.setVisible(true);
internalFrame1.setSelected(true);
}
catch (java.beans.PropertyVetoException ex) {
}
}
else {
internalFrame1.moveToFront();
}
}
如果internalFrame1没有最小化,还显示原来状态,那在点击Open菜单项时还保持现在状态,相当于没有执行一样,和上面结合起来如何实现呢?请高手指点!
在JFrame上建立了菜单,点击菜单项Open打开一个JInternalFrame,命名为internalFrame1,将internalFrame1最小化后,我想再次点击菜单项Open将最小化的internalFrame1显示为当前选中状态,且大小与最小化前一致,怎么办呢?我实验了很多,但是达不到这个效果,我的测试代码如下: JDesktopPane desktop = new JDesktopPane();
static final Integer DOCLAYER = new Integer(5); /* 这是点击Open菜单的处理代码 */
public void openInternalFrame1() {
if (internalFrame1 == null) {
internalFrame1 = new InternalFrame1();
desktop.add(internalFrame1, DOCLAYER); try {
internalFrame1.setVisible(true);
internalFrame1.setSelected(true);
}
catch (java.beans.PropertyVetoException ex) {
}
}
else {
internalFrame1.moveToFront();
}
}
如果internalFrame1没有最小化,还显示原来状态,那在点击Open菜单项时还保持现在状态,相当于没有执行一样,和上面结合起来如何实现呢?请高手指点!
解决方案 »
- 有一个疑问:java中什么时候使用静态函数,为什么要使用静态函数,使用静态函数和单例模式有什么特色
- 请问一下,如何不重启TOMCAT而更新SPRING里面创建的SINGLETON对象呢?谢谢
- 用java在LINUX下面怎么获取硬盘序列号、cpu序列号等硬件ID吗?
- 初学问题JTextField时间
- 急救啊!!!!各位大侠.....跪求一个答案..
- 培训可靠吗?
- java调用本地方法出错,急,在线等。
- 求助:在用openFileDialog打开文件的时候如何只显示特定类型的文件?
- 求助:为何rmic生成Stub和Skeleto文件时总报错呢
- 问一个问题,我是菜鸟。
- 如何画一个上面2个角带圆弧的JButton?
- 求助
internalFrame1 = new InternalFrame1();
desktop.add(internalFrame1, DOCLAYER);
} try {
internalFrame1.setVisible(true);
internalFrame1.setSelected(true);
}
catch (java.beans.PropertyVetoException ex) {
}
你好,又碰上你了,你真是我的救星,呵呵!上次的问题就是你回答的,非常感谢!
你把我的代码结构稍微修改了一下,我测试了,没有效果,我觉得这个问题不难,就差那么一点,需要高手点拨一下!我的测试代码要不发给你看看,邮箱!
可以这样做:
继承JInternalFrame,覆盖reshape函数,JInternalFrame的位置和大小每次改变之前都会调用这个函数的
public void reshape(int x, int y, int width, int height) {
System.out.println("reshape");
//在这里记录x,y,width,height
super.reshape(x,y,width,height);
}等需要还原成原来窗口的大小和位置,就这样做:
jinternalframe.setBounds(x,y, width, height);
这位仁兄,我的问题主要不是怎样还原JInternalFrame的大小和位置,而是: 我通过点击菜单Open生成了一个新的JInternalFrame,取名为internalFrame1,它是可以最小化的,我将它最小化后,它就会在JDesktopPane的左下角显示一个图标,此时手动点击此图标,internalFrame1就会显示出来,现在我想通过别的事件控制让它显示,比如还点击原来的菜单项Open将最小化的它显示出来,这个事件应该怎么写呢?有点郁闷!