1.

Solve : Java - having my classes send an ActionEvent?

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);
}
}
}
}



Discussion

No Comment Found