Hello,
Mike, Cindy, thank you so much for taking your time and trying to answer my question!
Mike, your driver works, so I made the Test class sightly more complex ( I want to add 3 text boxes and 3 sliders) and tried it out using your TestItOut and , again, it threw all kinds of exceptions... These have to do with 'events dispach' ( I'm new to Java, but I suspect it has something to do with multiply threads, right?). Now, that's disappointing... I can have
one slider with an event handler as an inner class, but I can't have three?
I realise that it all would be simpler with a JFrame, but extending JPanel is one of the assignment's specifications...
I was thinking of creating an 'intermediate' class, which would simply use 3 instances of Test, and I would get the three sliders and the three text boxes... I'm going to try this out, but it seems that this should not be the only option...
I would be grateful for any suggestions. Thanks again!
Here is the new Test:
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import javax.swing.event.*;
public class Test extends JPanel {
private JSlider redSlider;
private JSlider blueSlider;
private JSlider greenSlider;
private JTextField redText;
private JTextField blueText;
private JTextField greenText;
GridLayout layout = new GridLayout(3,2);
public Test() { // constructor
//____________ set up JTextFields__________________
redText = new JTextField( " ", 10);
redText = new JTextField( " ", 10);
redText = new JTextField( " ", 10);
// ____________ set up JSliders ____________________
redSlider = new JSlider( SwingConstants.HORIZONTAL,
0, 225, 10);
redSlider.setMajorTickSpacing(10);
redSlider.setPaintTicks(true);
redSlider.addChangeListener(
new ChangeListener() {
public void stateChanged( ChangeEvent e)
{ redText.setTex(" "+
redSlider.getValue() );
repaint(); }
}
);
blueSlider = new JSlider( SwingConstants.HORIZONTAL,
0, 225, 10);
blueSlider.setMajorTickSpacing(10);
blueSlider.setPaintTicks(true);
blueSlider.addChangeListener(
new ChangeListener() {
public void stateChanged( ChangeEvent e)
{ blueText.setText(" " +
blueSlider.getValue() );
repaint(); }
}
);
greenSlider = new JSlider( SwingConstants.HORIZONTAL,
0, 225, 10);
greenSlider.setMajorTickSpacing(10);
greenSlider.setPaintTicks(true);
greenSlider.addChangeListener(
new ChangeListener() {
public void stateChanged( ChangeEvent e)
{ greenText.setText(" " +
greenSlider.getValue() );
repaint();}
}
);
setLayout( layout);
add(redSlider);
add(redText);
add(greenSlider);
add(greenText);
add(blueSlider);
add(blueText);
} // end of constructor
} // end of class Test
.. and here is your driver, Mike:
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import javax.swing.event.*;
public class TestItOut extends JFrame{
private Test t;
private JButton btn;
private JFrame temp;
public TestItOut() {
super("Testing a dialog");
Container c = getContentPane();
c.setLayout(new FlowLayout());
btn = new JButton("Click Here");
btn.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent ev) {
temp = new JFrame("Second Window");
t = new Test();
temp.setContentPane(t);
temp.setSize(200,200);
temp.setVisible(true);
System.out.println("Click");
}
}
);
c.add(btn);
setSize(200,200);
setVisible(true); }
public static void main(String args[]) {
TestItOut app = new TestItOut();
app.addWindowListener(new WindowAdapter() {
public void windowClosing(WindowEvent e) {
System.exit(0); } }); }}