Java のコンポーネントに問題があります。問題は、GUI で楕円の色の変化が見られないことです。OVF フラグが false に設定されている場合は白、フラグ OVF が true に設定されている場合は赤になります。しかし、プログラムを開始すると、フラグ OVF が fasle に設定され、すべての楕円が白になります。これは問題ありません。フラグが true に変わるとき、楕円はまだ白です。repaint() 関数を追加しようとしましたが、色を変更せずに白い楕円がまだ点滅しています。クラスKomponentの私のコードは次のとおりです。
import java.awt.*;
import javax.swing.*;
public class Komponent extends JComponent {
Counter counter3;
public Komponent() {
counter3 = new Counter();
}
@Override
public void paint(Graphics g) {
Graphics2D dioda = (Graphics2D) g;
int x1 = 85;
int x2 = 135;
int x3 = 35;
int x4 = 185;
int x5 = 235;
int x6 = 88;
int x7 = 138;
int x8 = 38;
int x9 = 188;
int x10 = 238;
int y_ob = 0;
int y = 3;
int width_ob = getSize().width / 9;
int height_ob = getSize().height - 1;
int width = (getSize().width / 9) - 6;
int height = (getSize().height - 1) - 6;
if (counter3.OVF == true) {
dioda.setColor(Color.BLACK);
dioda.fillOval(x1, y_ob, width_ob, height_ob);
dioda.fillOval(x2, y_ob, width_ob, height_ob);
dioda.fillOval(x3, y_ob, width_ob, height_ob);
dioda.fillOval(x4, y_ob, width_ob, height_ob);
dioda.fillOval(x5, y_ob, width_ob, height_ob);
dioda.setColor(Color.RED);
dioda.fillOval(x6, y, width, height);
dioda.fillOval(x7, y, width, height);
dioda.fillOval(x8, y, width, height);
dioda.fillOval(x9, y, width, height);
dioda.fillOval(x10, y, width, height);
repaint();
}
if (counter3.OVF == false) {
dioda.setColor(Color.BLACK);
dioda.fillOval(x1, y_ob, width_ob, height_ob);
dioda.fillOval(x2, y_ob, width_ob, height_ob);
dioda.fillOval(x3, y_ob, width_ob, height_ob);
dioda.fillOval(x4, y_ob, width_ob, height_ob);
dioda.fillOval(x5, y_ob, width_ob, height_ob);
dioda.setColor(Color.WHITE);
dioda.fillOval(x6, y, width, height);
dioda.fillOval(x7, y, width, height);
dioda.fillOval(x8, y, width, height);
dioda.fillOval(x9, y, width, height);
dioda.fillOval(x10, y, width, height);
repaint();
}
}
public static void main(String[] arg) {
new Komponent();
}
}
助けてください(私の英語でごめんなさい);)