У меня проблема с моим компонентом на Java. Когда я устанавливаю флаг OVF в true, Rect должен быть в цвете красного (255,0,0), и если я установил флаг OVF в значение false, Rect должен быть синим цветом (0,0255). Проблема в том, что я вижу в моем графическом интерфейсе только синий прямоугольник (даже если флаг OVF установлен в true). Что я должен изменить в этом коде?JComponent change bar color
import java.awt.event.ActionListener;
import java.awt.event.ActionEvent;
import java.awt.*;
import javax.swing.*;
public class Komponent2 extends JComponent implements ActionListener
{
Timer tm = new Timer(10, this);
int x =30;
int y =0, y2 = 8;
Counter counter3;
Color Kolor = new Color(255,255,255);
public void paintComponent(Graphics g)
{
counter3=new Counter();
super.paintComponent(g);
g.setColor(Kolor);
g.fillRect(y,30,x,30);
tm.start();
}
public void actionPerformed(ActionEvent e)
{
if(y<0 || y>300)
y2=-y2;
y=y + y2;
if (counter3.OVF==true)
Kolor = new Color (255,0,0);
if (counter3.OVF==false)
Kolor = new Color (0,0,255);
repaint();
}
}
Спасибо, что помогли мне.
Ваш код нуждается в экстренном отступе. – Maroun
Возможно, что-то связано с тем, как вы создаете новый счетчик3 при каждом вызове 'paintComponent'. Где вы устанавливаете OVF? – whiskeyspider
OVF устанавливается в классе Counter. OVF устанавливается в true, когда MainReg установлен в 0 (он работает, потому что если OVF == true, я могу видеть в моем ярлыке класса GUI «INTERRUPT» – Martyn