XMLファイルを動的グラフに変換するアプリケーションを開発しているので、JPanelを拡張してノードを配置するクラス(circularnode.java)を作成し、JPanelを拡張して矢印を追加するクラス(arrow.java)を作成しましたが、表示時に矢印、それらは常にノードの後ろにあります。Circularnode.javaの背景はそれらを隠します。
JPanelを別のJPanelの上に表示したり、表示の順序を制御したりするにはどうすればよいですか?
JPanelから矢印とノードを直接描画するためのコードを抽出することを検討してください。おそらく、自分自身を描画する方法を知っているArrowクラスとNodeクラスを作成できます。たとえば、public void paint(Graphics g)
メソッドがあります。
次に、JPanelクラスのフィールドArrayList<Arrow>
とフィールドを作成し、リストを反復処理して、JVMから取得したGraphicsコンテキストを渡す各アイテムのメソッドを呼び出すことにより、JPanelのメソッドで両方を描画できます。ArrayList<Node>
paintComponent(...)
paint(...)
それ以外の場合、どうしてもこれらを別々のJPanelに重ねて描画する必要がある場合は、上部のJPanelがを介して不透明setOpaque(false)
にならないようにしてください。これにより、背景がペイントされず、透けて見えます。
より具体的なヘルプが必要な場合は、問題、現在のコード、さらにはコードの一部を、できればSSCCEの形式で投稿することを検討してください(この非常に便利な構成について説明しているリンクを参照してください)。
ちなみにstackoverflow.comへようこそ!