ユーザーが線を描いて消すことができるプログラムを作成しています。ウィンドウを作成し、機能する JMenuBar を作成できます。描画機能が有効になっていない場合は、すべて問題ありません。ただし、描画機能が有効な場合、2 番目の JMenuBar が元のバーの下に描画されます。このメニュー バーは機能せず、描画されると、画面上のすべてのグラフィックが下に再描画されることがあります。何らかの方法でウィンドウのサイズを変更すると、これらの問題が解決されます。
私は写真を投稿しますが、ご存知のように、私は新しいユーザーであり、投稿できません。
問題を paint() メソッドのあるポイントに絞り込むことができました。知っておくべきこと: マウスがドラッグされると、repaint() メソッドが呼び出されます。Line クラスの paintObject(Graphics g) メソッドを呼び出す paint() メソッドを使用します。JMenuBar エラーは、最上位クラスのペイント メソッドの END に表示されます。
public void paint(Graphics g)//paint() in the top class
{
for(int i = 0; i < objs.size(); i++)//Loop that finds all Tool(Line) objects that
((Tools)objs.get(i)).paintObject(g);//have been drawn, and redraws them.
//This part of the code completes successfully with no error.
}//ERROR OCCURS HERE!!!!!!
なぜこれが起こっているのか分かりません。補足として、強調表示されるまで表示されない画面上の JTextField もあります。ここまで読んでくれてありがとう!