あなたはこれらの絵を見るとわかるように、メニュー項目を閉じた後、背景のグリッド線と黒の長方形は更新されません。どうすれば更新できますか? C#には自動的に更新されるイベントハンドラがありますが、私はJava Swing GUIアプリケーションの初心者です。ここで
はコードです:コメントのpublic void paint(Graphics g) {
super.paintComponents(g);
MainDisplayForm mD = new MainDisplayForm();
Graphics2D g2 = (Graphics2D) g;
g2.setColor(Color.BLACK);
int gridWidth = 1240;
int gridHeight = 400;
g2.fillRect(20, 50, gridWidth, gridHeight);
g2.setColor(Color.darkGray);
paintGrid(g2,gridWidth, gridHeight);
g2.setColor(Color.red);
Line2D line = new Line2D.Float(20, 50, 250, 260);
g2.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON);
//g2.draw(line); //pending
g2.dispose();
}
private void paintGrid(Graphics g, int gridWidth, int gridHeight)
{
for(int i=20; i<gridWidth+20; i=i+10)
{
g.drawLine(i, 50, i, gridHeight+49);
}
for(int i=50; i<gridHeight+50; i=i+10)
{
g.drawLine(20, i, 1259, i);
}
}
//感謝!!追加するイベントハンドラは次のとおりです。 これは、コンポーネントのアップデート/リフレッシュするための使用repaint()
private void jMenu2MenuDeselected(javax.swing.event.MenuEvent evt) {
repaint();
}
'MainDisplayForm mD = new MainDisplayForm();'このコード行は何としますか?一般的には、 'paint()'や 'paintComponent()'メソッドでコンポーネントを作成するべきではありません。 'MainDisplayForm'とは何ですか? Camickrが何を言及したのかを再度述べるために、早くより良い助けを得るために、[SSCCE](http://sscce.org/)を投稿してください。 –