前回の質問でいただいたアドバイスに感謝します。もう1つ質問があります。顔を描きたい、丸いピンク色の顔。その丸いピンク色の顔に、真っ赤な笑顔を添えたい。そして、JSlider を使用して、その笑顔を伸ばしたり短くしたりしたいと考えています。以前の質問では、円 A の中心を円 B に合わせ、円 A と円 B の中心が常に一致するように JSlider を使用して円 B の半径を増減する方法について説明しました。私は私が得た答えを理解しています。しかし、JSlider が笑顔を伸ばしたり縮めたりするように顔 (つまり OVAL) の笑顔 (つまり ARC) を修正するにはどうすればよいですか。言い換えれば、笑顔は顔に固定されたままでなければなりません。アドバイスが必要です。私の(間違った)コードは次のとおりです。
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);
}