0

すべてのJInternalFrameをarraylistに保持します

 ArrayList<JInternalFrame> arr;

したがって、すべてのフレームにインデックスがあります。すべてのフレームにはJScrollPaneが含まれています。MyJPanel(JPanelを拡張)はフレームのインデックスを保持します。

JInternalFrame frame = new JInternalFrame("Frame "+Integer.toString(count),true,true,true,true);
MyJPanel panel = new MyJPanel(f.getAbsolutePath(),count);
JScrollPane pane = new JScrollPane(panel);
pane.setPreferredSize(new Dimension(theDesktop.getWidth()/2,theDesktop.getHeight()/2));
frame.getContentPane().add(pane, BorderLayout.CENTER);
frame.pack();

閉じたJInternalFrameのインデックスを取得し、このフレームをarraylistから削除するにはどうすればよいですか?closeメソッドをオーバーライドしますか?

4

1 に答える 1

4

内部フレームのデフォルトの閉じる操作を設定してから、ビューを閉じるときにイベントを発生させるdoDefaultCloseActionを呼び出すことができます。

この前に、このイベントのリスナーとして自分自身を追加し、イベントを受信したら、必要なアクションを実行します。

于 2012-04-15T21:46:09.097 に答える