我很欣赏我之前提出的问题的建议。我还有一个问题。我想画一张脸,一张粉红色的圆脸。在那圆圆的粉红色的脸上,我想加上一个红色的笑容。我希望使用JSlider来延长或缩短笑容。我之前的问题涉及用圆圈B对齐圆圈A的中心,并使用JSlider增加或减小圆圈B的半径,使得圆圈A和圆圈的中心总是重合。我理解我得到的答案。但是我如何在脸上(即OVAL)修复微笑(即ARC),以便JSlider拉长或缩短笑容,但不会在脸上微笑。换句话说,笑容必须保持固定在脸上。拜托,我需要建议。我的(错误的)代码是:
public void createGUI() {
slider1Label = new JLabel("Mouth width(10-100): ");
window.add(slider1Label);
slider1 = new JSlider(JSlider.HORIZONTAL,10,100,10);
window.add(slider1);
slider1.addChangeListener(this);
}
public void stateChanged(ChangeEvent e) {
Graphics paper = panel.getGraphics();
int slider1Value = slider1.getValue();
paper.setColor(Color.white);
paper.fillRect(0, 0, 500, 500);
paper.setColor(Color.pink); // draw the pink interior of the face
paper.fillOval(50,50,200,200);
paper.setColor(Color.black); // draw the black exterior border of the face
paper.drawOval(50,50,200,200);
paper.setColor(Color.red); // draw the red mouth
paper.fillArc(90,140,220-slider1Value,150-slider1Value,20,-220);
}