如何在java中列出从桌面到窗口菜单的所有可见内部框架
我正在创建一个MDI应用程序。我已将所有internalframe添加到desktoppane。 我的问题是将所有可见的内部框架作为菜单项添加到“窗口”菜单中。当从菜单中选择另一帧时,它应该设置焦点。 我必须在桌面窗格上多次校准相同的菜单项,并且每个菜单项都应该相同 请帮帮我 我只是添加了组件侦听器,每次创建事件时调用一个函数,函数的内容是如何在java中列出从桌面到窗口菜单的所有可见内部框架,java,swing,jinternalframe,jmenuitem,jdesktoppane,Java,Swing,Jinternalframe,Jmenuitem,Jdesktoppane,我正在创建一个MDI应用程序。我已将所有internalframe添加到desktoppane。 我的问题是将所有可见的内部框架作为菜单项添加到“窗口”菜单中。当从菜单中选择另一帧时,它应该设置焦点。 我必须在桌面窗格上多次校准相同的菜单项,并且每个菜单项都应该相同 请帮帮我 我只是添加了组件侦听器,每次创建事件时调用一个函数,函数的内容是 enter code here JCheckBoxMenuItem menu=new JCheckBoxMenuItem();
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);
}
}
}
在此处输入代码
JCheckBoxMenuItem菜单=新建JCheckBoxMenuItem();
字符串mnu=null;
字符串标题=null;
对于(int i=0;i0)
{
对于(intj=0;j我认为你应该看看和。
只需调用JDeskoptPane.getAllframes()获取帧,然后调用JInternalFrame.setSelected(true)聚焦。要观看帧添加和删除,您可以使用侦听器。您可以简单地将ContainerListener添加到JDesktopPane。因此,每次向JDesktopPane添加或从JDesktopPane删除内部帧时,您都会收到通知,从而可以相应地修改菜单
菜单的每个菜单项都可以与JInternalFrame关联,您只需调用setSelected(true)
单击菜单项时显示在关联的内部框架上。不鼓励只包含链接的答案,并且您提供的其中一个链接指向不应直接调用的方法。此外,它不回答问题。