创建MDI应用程序。我已将所有内部框架添加到desktoppane。 我的问题是将所有可见的内部帧作为菜单项添加到“窗口”菜单。当从菜单中选择另一个帧时,它应该设置焦点。 而且我必须在桌面窗格上多次调用相同的内容,并且每个菜单项都应相同 plzz帮助我 我只是添加组件监听器,每次创建事件时我都会调用一个函数,函数的内容是
enter code here
JCheckBoxMenuItem menu=new JCheckBoxMenuItem();
String mnu = null;
String title=null;
for(int i=0;i<DesktopPane.getAllFrames().length;i++)
{ int no=1;
JInternalFrame frame=(JInternalFrame) DesktopPane.getComponent(i);
String tit=frame.getTitle();
if(tit.contains(".")){
title=tit.substring(2,tit.length());
}
else{
title=tit;
}
if(windows.getItemCount()>0)
{
for(int j=0;j<windows.getItemCount();j++)
{
JCheckBoxMenuItem m=(JCheckBoxMenuItem) windows.getMenuComponent(j);
String s=m.getText();
String[] d=s.split(".",2);
String y=d[1];
if(y.equals("."+title))
{
if(j==0){
no=no-1;
}
no=no+1;
}
}
mnu=no+"."+title;
}
else {
mnu=no+"."+title;
}
if(!frame.getTitle().contains(".")){
frame.setTitle(no+"."+title);
}
menu.setText(mnu);
buttonGroup1.add(menu);
windows.add(menu);
if(i==DesktopPane.getAllFrames().length-1)
{
menu.setState(true);
}
}
}
答案 0 :(得分:1)
您只需将ContainerListener添加到JDesktopPane即可。因此,每次在JDesktopPane中添加或删除内部框架时都会收到通知,因此可以相应地修改菜单。
菜单的每个菜单项都可以与JInternalFrame相关联,当您点击菜单项时,只需在关联的内部框架上调用setSelected(true)
。
答案 1 :(得分:0)