-1

MDI アプリケーションを作成しています。すべての内部フレームをデスクトップ ペインに追加しました。私の問題は、表示されているすべての内部フレームをメニュー項目として「ウィンドウ」メニューに追加することです。メニューから別のフレームが選択されたときに、フォーカスを設定する必要があります。そして、デスクトップペインで複数回同じように呼び出す必要があり、それぞれがメニュー項目で同一である必要があります 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);
             }
         }
}
4

2 に答える 2

0

これこれを見てみるといいと思います。JDeskoptPane.getAllframes() を呼び出してフレームを取得し、JInternalFrame.setSelected(true) を呼び出してフォーカスします。フレームの追加削除を監視するには、リスナーを使用できます。

于 2013-08-20T11:37:48.693 に答える