Я просто сделал программу Java с затмением для изменений бара Jprogress с JSlider, но значение ползунков не меняет Он остается постоянная, вот код:JSlider не изменяет значение и сохраняет постоянное
Первый класс:
package pro;
import java.awt.Color;
import java.awt.FlowLayout;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JProgressBar;
public class pro1 {
int value;
public static void main(String[] args) {
// TODO Auto-generated method stub
//setting the objects
final pro1 p = new pro1();
final pro2 p2 = new pro2();
//adding the JFrame.
JFrame fr = new JFrame();
fr.setVisible(true);
fr.setSize(380, 80);
fr.setLayout(new FlowLayout(FlowLayout.LEFT));
fr.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
//adding the JProgressBar.
JProgressBar pb = new JProgressBar(0,100);
pb.setOpaque(false);
Color c = new Color (0,200,0);
pb.setForeground(c);
pb.setValue(p.value);
//adding the JPanel
JPanel panel = new JPanel();
panel.add(pb);
panel.add(p2.slider());
//adding the panel to the frame.
fr.add(panel);
fr.revalidate();
}
}
Второй класс:
package pro;
import javax.swing.JSlider;
import javax.swing.event.ChangeEvent;
import javax.swing.event.ChangeListener;
public class pro2 {
//setting the object
pro1 p = new pro1();
public JSlider slider(){
//adding the slider.
final JSlider s = new JSlider();
s.setMinimum(0);
s.setMaximum(100);
s.setValue(0);
s.setMajorTickSpacing(10);
s.setPaintTicks(true);
s.addChangeListener(new ChangeListener(){
@Override
public void stateChanged(ChangeEvent e) {
// TODO Auto-generated method stub
p.value = s.getValue();
}
});
return s;
}
Я также попытался присвоить значение ползунка значению и распечатать его, но он сохранил значение по умолчанию, которое я установил для него, равное 0 ......
Что-то не так в коде? ?
P1 в Pro2 ссылается свой собственный экземпляр, который не то, на экране – MadProgrammer