重要なお知らせ

「教えて! goo」は2025年9月17日(水)をもちまして、サービスを終了いたします。詳細はこちら>

電子書籍の厳選無料作品が豊富!

import java.applet.Applet;
import java.awt.*;
import java.awt.event.*;

/*
<APPLET CODE= "JaRadio1.class" WIDTH=300 HEIGHT=150>
</APPLET>
*/

public class JaRadio1 extends Applet implements ItemListener{
CheckboxGroup grp1;
Checkbox bx1,bx2,bx3;
int r=255,g=255,b=255;
String ss ="";

public void init(){
grp1=new CheckboxGroup();
bx1=new Checkbox("Red",true,grp1);
bx2=new Checkbox("Green",false,grp1);
bx3=new Checkbox("Blue",false,grp1);

bx1.addItemListener(this);
bx2.addItemListener(this);
bx3.addItemListener(this);

add(bx1);
add(bx2);
add(bx3);
}

public void itemStateChanged(ItemEvent e){
r=g=b=0;
if(bx1.getState()==true){
r=255;
}
if(bx2.getState()==true){
g=255;
}
if(bx3.getState()==true){
b=255;
}
ss=("Red="+r+" Green="+g+" Blue="+b);
repaint();
}

public void paint(Graphics g){
g.drawString(ss,30,40);
//g.setColor(new Color(r,g,b));
g.fillOval(30,60,80,30);
}
}

g.setColor(new Color(r,g,b));
により色つき図形を
赤緑青をチェックボックスで選択して
描きたいのですが
この部分でエラーがでてしまいます。
上記のように//によりコメントアウトするとコンパイルできます
どこが間違っているのかどうしてもわかりません
よろしくお願いします。

A 回答 (1件)

g.setColor(new Color(r,g,b));



この r,g,b の g なんですが、色を表す int 値フィールドを表しているつもりなんでしょうが、ここでこう書くとメソッドの引数である Graphics オブジェクトの g を指すことになります。
引数の名前を変えるか、
g.setColor(new Color(r,this.g,b));
と書き換えましょう。

ただ、このくらいのレベルのエラーはぜひともエラーメッセージを読んで自力で解決して欲しいものです。
エラーメッセージには「setColor メソッドに対する引数の型がおかしい」という意味のことが書いてあるはずです。どうして引数の型がおかしいのか考えると、変数の名前がかぶっていることに気が付けるはずです。
    • good
    • 0
この回答へのお礼

回答ありがとうございます。
>このくらいのレベルのエラーはぜひともエラーメッセージを読んで自力で解決して欲しいものです。
その通りですね。
また機会がありましたらよろしくお願いします。

お礼日時:2005/07/31 00:59

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!