|
Answer» So I've been working on something. Anyways I was wondering how I can make my class throw its own action event to the class its implemented in: When either the slider or the text FIELD is updated.
Here is the class. Code: [Select]import javax.swing.*; import java.awt.event.*; import javax.swing.event.*;
public class PhotoControls extends JPanel { private JSlider slider; private JTextField slideVal; public ActionEvent ae; public PhotoControls() { super(); slider = new JSlider(1,200,100); slider.addChangeListener(new SliderListener()); slideVal = new JTextField(6); slideVal.addActionListener(new SlideValListener()); add(slider); slideVal.setText(slider.getValue() + " %"); add(slideVal); } public int getSlide() { return slider.getValue(); } public void setSlideVal(int VAL) { slider.setValue(val); } public void setText(int val) { slideVal.setText(val + " %"); } public String getText() { return slideVal.getText(); } public void stateChanged(ChangeEvent evt) { Object source = evt.getSource(); if(source == slider) { slideVal.setText(slider.getValue() + " %"); } } private class SliderListener implements ChangeListener { public void stateChanged(ChangeEvent E){ JSlider source = (JSlider)e.getSource(); if(!source.getValueIsAdjusting()){ //do crap here setText(getSlide()); } } } private class SlideValListener implements ActionListener { public void actionPerformed(ActionEvent e) { String RES = ""; String source = getText(); boolean reset = false; for(int i = 0; i < 3; i++) { if((int)source.charAt(i) >= (int)'0' && (int)source.charAt(i) <= (int)'9') res += source.charAt(i); } if(res.length() > 0) { setText(Integer.parseInt(res)); setSlideVal(Integer.parseInt(res)); } else { setText(100); setSlideVal(100); } } } }
|