私は、paint()メソッドが、JFrameにクラスを拡張するときなど、必要に応じて呼び出されることが何度も言われています。コードではpaintメソッドが呼び出されていないので、描画された矩形は表示されません。Javaの方法とタイミングは正確にはpaint()メソッドですか?
私も(私が作成した)コンストラクタの内部でpaintメソッドを呼び出そうとしましたし、メインでクラスのobejctを作成するが、私はあなたが二つのフレーム持っているとNullPointerException
import java.awt.Graphics;
import javax.swing.JFrame;
public class MyFirstDrawing extends JFrame
{
/**
*
*/
private static final long serialVersionUID = 1L;
public static void main(String args[])
{
JFrame w = new JFrame("Hello World");
w.setTitle("My First Drawing");
w.setDefaultCloseOperation(EXIT_ON_CLOSE);
w.setSize(500,500);
w.setVisible(true);
}
public void paint(Graphics g)
{
g.drawRect(40, 40, 100, 200);
}
}
「MyFirstDrawing」ではなく、新しい「JFrame」を作成しました。 – GriffeyDog
実際に私もそれをしましたが、出力に何も起こらなかったので、私はその行を削除しました。また、私は初心者ですので、私はそのオブジェクトで何をすべきか分かりませんでした。 –
JFrame上でpaint()をオーバーライドしないでください! – camickr