私はJFrame
を持っています。フレームをクリックすると、Component
(この場合はCanvas
の拡張子)を追加します。なぜMouseListenerを使用してJFrameにコンポーネントを追加できないのですか?
frame.addMouseListener(new MouseAdapter() {
public void mouseClicked(MouseEvent e) {
frame.add(canvas);
frame.repaint();
}
});
しかし、成分はマウスがフレームにクリックされたときに追加されていない次のようにIフレームにMouseListener
を添加しました。私は、私の主な方法でコンポーネントを追加することに問題はありません。マウスリスナーでprintステートメントを追加すると、フレームからコンポーネントを削除する場合と同様に、正しく印刷されます。
どのようなレイアウトですか?revalidate()も必要です –
あなたの再描画の前に 'frame.pack()'を追加してみてください。 – sprinter
[この回答](http://stackoverflow.com)で示すように['CardLayout'](http://download.oracle.com/javase/8/docs/api/java/awt/CardLayout.html)を使用してください。/a/5786005/418556)。 –