0

そのため、このオブジェクトに関連付けられたデータの 2D マトリックスを使用してオブジェクトをインスタンス化しました。このデータ マトリックスに対してすべてのロジックを実行し、この 2D マトリックスのビジュアルを表示する準備が整いました。

マトリックスの値に応じて、空白の長方形のいずれかを印刷したいと思います。

疑似コードでの私の問題は次のとおりです。

public void paintComponent(Graphics g)
{
    g.setColor(Color.gray);
    g.fillRect(0,0, 500, 500);

    // I need the logic from the instantiated logic from the main method but I cant pass the object into the paintComponent method when I tried. How can I access the objectGrid object from the main method in this method? 

}

public static void main(String[] args) {
    Class newObject = new Class();

    //Do operations on newly instantiated object
    newObject.performOperation;

    // Start a new JFrame object which will call the paintComponent method automatically
    // But I want to pass newObject to paintComponent method and I don't know how to do it

    JFrame window = new JFrame();
    window.setSize(500, 500);
    window.setVisible(true);
}

これが理にかなっていることを願っています。ありがとう

4

1 に答える 1

2

拡張する新しいクラスが必要ですJFrame

public class MyClass{
    //...
}

public class MyFrame extends JFrame{
    private MyClass obj;

    public MyFrame(MyClass obj){
        this.obj = obj;
        //...
    }

    //...

    public void paintComponent(Graphics g){
        // Paint obj in here
    }

}

次に、次のように使用できます。

MyClass obj = new MyClass();
MyFrame frame = new MyFrame(obj);
//...
frame.setVisible(true);
于 2013-08-28T08:09:36.047 に答える