JPanel の描画に問題があります。正しく描画されますが、親コンテナーのサイズを変更すると、JPanel がウィンドウの左上隅と正しい位置に描画されます。
JPanel には、どの JPanel にも属さない一連のコンポーネント (それを含む) をペイントするカスタム ペイント メソッドがあります。これらは、ペイント メソッドが呼び出される直前に JPanel に追加され、直後に削除されます。
paintOnto.setIgnoreRepaint(true);
paintOnto.add(getPaintableComponent());
getPaintableComponent().paint(g);
paintOnto.remove(getPaintableComponent());
paintOnto.setIgnoreRepaint(false);
paintOnto は JPanel への参照であり、getPaintableComponent() は描画される JComponent を返します。g は、JPanel の paint メソッドから渡された Graphics オブジェクトです。
追加/削除コードは mac ではまったく必要ありませんでしたが、それがないと Windows ではコンポーネントがまったく描画されませんでした。
この問題は Windows と ubuntu にのみ存在し、Mac には存在しません。他のシステムはテストされていません。
それを引き起こしている可能性のあるアイデアはありますか?JPanel をペイントするたびにその位置を確認しましたが、左上隅に配置されることはありません。
ありがとう