Я должен был создать приложение-заставку, которое рисует определенное количество случайных линий каждые пять секунд, и мы должны были включить пользовательский интерфейс, чтобы позволить пользователю вводить количество линий, которые они хотят нарисовать. Я подумал, что ползунок будет проще, но я не могу заставить ползунок изменить значение переменной lines, которая используется в цикле, который рисует линии. Значение застряло на 250 независимо от того, где я поставил ползунок
public class Q4 extends JComponent implements ActionListener, ChangeListener{
private Random rand=new Random();
private Timer time=new Timer(5000,this);
private int lines;
JSlider line=new JSlider(0,500);;
public Q4(){
JFrame frame=new JFrame();
frame.setSize(1080,720);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setVisible(true);
frame.add(this);
JSlider line=new JSlider(0,500);
line.addChangeListener(this);
line.setMajorTickSpacing(50);
line.setMinorTickSpacing(25);
line.setPaintTicks(true);
line.setPaintLabels(true);
frame.add(line, BorderLayout.NORTH);
}
@Override
public void paintComponent(Graphics g) {
time.start();
int x=0;
while(x<lines) {
int x1=rand.nextInt(getWidth())+1;
int y1=rand.nextInt(getHeight())+1;
int x2=rand.nextInt(getWidth())+1;
int y2=rand.nextInt(getHeight())+1;
g.drawLine(x1, y1, x2, y2);
x++;
}
System.out.println(lines);
}
@Override
public void actionPerformed(ActionEvent e) {
repaint();
}
@Override
public void stateChanged(ChangeEvent e) {
lines=line.getValue();
}