题目: 用三个Jslider对象分别代表颜色中的红、绿、蓝,他们的值从0到255,在相应的三个JTextField中显示各个Jslider的当前值。用这三个值作为color类构造方法的参数构造一个新的Color对象,用来填充一个矩形。
我编的程序能运行出来结果,但不能画矩形。找了两天也找不出错误。函数程序如下:
import javax.swing.*;
import java.awt.*;
import javax.swing.event.*;
import java.awt.event.*;public class ti13 extends JFrame {
static int red,blue,green;
static String x1,x2,x3;

    //构造函数
    public ti13(){
JFrame.setDefaultLookAndFeelDecorated(true);          //设置JFrame的外观风格              
    JFrame frame = new JFrame("13题");
    Container contentPane=frame.getContentPane();         //获得一个项级容器的内容面板,通过它加入其他组件
    contentPane.setLayout(new GridLayout(7,1));
   
        //建立三个Jslider
    final JSlider redSlider=new JSlider(SwingConstants.HORIZONTAL, 0, 255, 1 );          
    final JSlider greenSlider=new JSlider(SwingConstants.HORIZONTAL, 0, 255, 1 );
    final JSlider blueSlider=new JSlider(SwingConstants.HORIZONTAL, 0, 255, 1 );
   
    //建立三个JTextField
     final JTextField redText=new JTextField();
     final JTextField greenText=new JTextField();
     final JTextField blueText=new JTextField();
         
//添加监听器
redSlider.addChangeListener(new ChangeListener(){
public void stateChanged(ChangeEvent e){ 
red=redSlider.getValue();
x1=String.valueOf(red);
redText.setText(x1);     //在 JTextField 中显示JSlider的值
repaint();
}
});
greenSlider.addChangeListener(new ChangeListener(){
public void stateChanged(ChangeEvent e){ 
green=greenSlider.getValue();
x2=String.valueOf(green);
greenText.setText(x2);      //在 JTextField 中显示JSlider的值
repaint();
}
});
blueSlider.addChangeListener(new ChangeListener(){
public void stateChanged(ChangeEvent e){ 
blue=blueSlider.getValue();
x3=String.valueOf(blue);
blueText.setText(x3);    //在 JTextField 中显示JSlider的值
repaint();
}
});

//添加到面板中
contentPane.add(redSlider);
contentPane.add(redText);
contentPane.add(greenSlider);
contentPane.add(greenText);
contentPane.add(blueSlider);
contentPane.add(blueText); frame.setDefaultLookAndFeelDecorated(true);
frame.pack();

frame.show();
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    }  
    public void Color (int red, int green, int blue){Color(red, green, blue);}
 
    public void paint(Graphics g){
super.paint(g);
g.setColor(new Color(red, green, blue));
g.fillRect(0,350,100,200);

}     
    
    public static void main (String[] args) {
    ti13 application = new ti13();
            application.setDefaultCloseOperation( JFrame.EXIT_ON_CLOSE );
            } 
}