Извините заранее, если этот вопрос задали раньше. Я действительно пытался найти то, что мне помогает. К сожалению, мне не повезло.Изменение одной и той же переменной для всех существующих подпроцессов
Вот моя ситуация:
У меня есть класс кадров с кнопкой и ползунком. И у меня класс потоков. С помощью кнопки в классе фрейма я создаю экземпляры класса потока. Один экземпляр класса потока представляет собой изображение. Все субтитры (изображения) будут отображаться в одном кадре и перемещаться с определенным интервалом.
Вот моя проблема:
Ползунок Controles интервал движущихся изображений. Таким образом, они движутся быстрее или медленнее. Все снимки должны быть быстрее или медленнее. К несчастью, только слайдер влияет только на первый созданный поток. Такая же проблема связана с моим ComponentAdapter, у которого есть функция componentResized. Все потоки (или изображения) должны увеличиваться или уменьшаться одновременно относительно размера рамки.
Здесь я попытаюсь показать вам, примерно, как я это делаю:
класс рама:
//The actionPerformed for the button that keeps creating threads
//Every thread is a picture (ant in this case) that
// moves through the same field of buttons
public void actionPerformed(ActionEvent e){
a = new AmeiseThread(this);
a.start();
}
// The slider in the frame.When it changes, also the picture movement speed changes
sliderKind.addChangeListener(new ChangeListener() {
@Override
public void stateChanged(ChangeEvent e) {
JSlider source = (JSlider) e.getSource();
if (!source.getValueIsAdjusting()) {
int speed = source.getValue();
a.sleeptime = 1000/speed;
}
}
});
// Whenever the Frame gets resized, it will change the Pictures
// on its buttons relatively to its new size
class MyComponentAdapter extends ComponentAdapter {
public void componentResized(ComponentEvent e) {
xScale = jbArray.get(1).getSize().width;
yScale = jbArray.get(1).getSize().height;
a.ameisen.clear();
a.ameisen.add(new ImageIcon(new ImageIcon("ameise.gif").getImage()
.getScaledInstance(xScale, yScale, Image.SCALE_SMOOTH)));
a.ameisen.add(new ImageIcon(new ImageIcon("ameise90.gif").getImage()
.getScaledInstance(xScale, yScale, Image.SCALE_SMOOTH)));
a.ameisen.add(new ImageIcon(new ImageIcon("ameise180.gif").getImage()
.getScaledInstance(xScale, yScale, Image.SCALE_SMOOTH)));
a.ameisen.add(new ImageIcon(new ImageIcon("ameise270.gif").getImage()
.getScaledInstance(xScale, yScale, Image.SCALE_SMOOTH)));
}
}
Я не могу думать ни о чем, что написано в моем классе нити, которые могут быть представляет интерес. Я думаю, что проблема заключается в моем уже размещенном коде где-то. Но если вам нужна дополнительная информация, прокомментируйте это, и я отправлю вам больше информации.
Извините, если этот вопрос уже существует. Я чувствую, что это так, потому что это звучит довольно просто. Хотя я действительно пытался найти вопрос, подобный этому, но мне не повезло.
вы должны использовать статическое поле или сохранить все темы, созданные вами и itarate на нем, когда ползунок изменен , – igreen