我感谢我收到的关于上一个问题的建议。我还有一个问题。我想画一张脸,一张粉红色的圆脸。在那张粉红色的圆脸上,我想添加一个红色的微笑。我想用 JSlider 拉长或缩短那个微笑。我之前的问题涉及将圆 A 的中心与圆 B 对齐,并使用 JSlider 以使圆 A 和 B 的中心始终重合的方式增加或减小圆 B 的半径。我明白我得到的答案。但是我如何在脸上(即椭圆形)上修复微笑(即弧形),以便 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);
}