1

私は現在、以下のコードを持っています。

public class cRunningView extends JInternalFrame {

    static final int xOffset = 30, yOffset = 30;
  public cRunningView() {
    // Get name;
    super("RUNNING", true, // resizable
            false, // closable
            true, // maximizable
            true);// iconifiable

    System.out.println("##" + "p.getName()");
    // ...Then set the window size or call pack...
    setSize(500, 200);

    // Set the window's location.
    setLocation(xOffset * 0, yOffset * 0);


    JScrollPane scrollPane = new JScrollPane();

}

}

私の目的は、画面の半分に多数のボタンとボックス/長方形を備えた JInternalFrame を作成することです。

このボックス内で、x、y から x、y に楕円を描くなどのグラフィックを描画できるようにしたいと考えています。

例を見てみましたが、最初よりも混乱するようになりました。私のコードはすべて機能しています。たとえば、メイン GUI ウィンドウと内部フレームの表示を表示していますが、JScrollPane 内でグラフィックスを実行するための適切なチュートリアル/開始点が見つからないようです。

JScrollPane を使用する必要はないことに注意してください。グラフィックスに境界線が表示されるので、良いアイデアだと思いました。

誰かがその質問についてうめき声を上げる前に、それは有効だと思いますが、プレートにコードを渡してもらいたくありません。自分の知識を高め、他の人を助けることができるように、自分が何をしているのかを知り、理解したいと思います!

別のクラスを作成して JScrollPane myPane = JScrollPane(graphicsClass) を実行する必要がありますか?

それから paint() ですべてを行いますか、それともグラフィックを作成して別のクラスなしでそれを行う方法がありますか?

私が行った場合 :

JScrollPane scrollPane = new JScrollPane();
    Graphics temp = scrollPane.getGraphics();
    temp.setColor(new Color(1, 22, 33));
    temp.fillOval(60, 0, 120, 60);
    scrollPane.paint(temp);

エラーをスローします。

ありがとう

4

1 に答える 1

3

スクロールペインでグラフィックスを実行しません。また、getGraphics() メソッドを使用してカスタム ペイントを実行しないでください。

カスタム ペイントは、JPanel または JComponent の paintComponent() メソッドをオーバーライドすることによって行われます。次に、必要に応じて、パネルをスクロールペインに追加し、スクロールペインをフレームに追加できます。スクロールが機能するように、パネルの優先サイズを設定することを忘れないでください。

カスタムペインティングに関する Swing チュートリアルを読むことから始めます。

于 2013-02-07T19:24:31.493 に答える