JTable を破棄した後、JInternalFrame にフォーカスを移すという単純な (そうではない?) 問題があります。
//I created a table, set it to visible, gave it focus.
list.dispose(); //I did what I wanted with the table and I dispose of it
screen.setVisible(true); //The screen is already visible. this isn't really needed
//After I closed table, I want the focus return to the screen (JInternalFrame)
screen.setFocusable(true);
screen.requestFocus();
screen.requestFocusInWindow();
screen.requestFocus(true);
desktopPane.setSelectedFrame(screen);
つまり、どのコンポーネントにフォーカスがあるかを確認すると、画面が返されるという意味で、画面はフォーカスを取得します。しかし、バー(ここでは適切な用語がわかりません)アイコン、タイトル、Xのようなものを含む上部のバーは灰色で、青ではありません.
アクティブに振る舞うだけでなく、JInternalFrame LOOKをアクティブにする方法はありますか?
例: http://nexrem.com/projects/FocusDemo.rar NetBeans でこれをすばやく作成しました。
クリックして screen1 を開きます。開いて集中します。クリックして JTable を開きます。開き、フォーカスがあります。Screen1 がフォーカスを失いました。Esc を押して JInternalFrame を閉じます。閉じますが、screen1にはフォーカスがないようです(少なくとも視覚的には)。2 つの JInternalFrames の間にあるため、フォーカス サイクリングと関係があるのではないかと疑っています...