カスタム カラーを使用して、ランダムに作成された色を表示する小さなアプリを作成しています。色は楕円形で、その下に RGB コンポーネント番号があります。外側の JFrame には 3 つのタブがあり、RGB に関して彩度が最も低いものから最も高いものへと色を並べ替えます。例: ピンクは赤よりも明るいため、リストの最初に赤の下に分類されます。しかし、データを並べ替えるドライバーと楕円を描画するドライバーの間で、並べ替えられた色データを送信する際に問題があるようです。「シンボルが見つかりません」というエラーメッセージが表示されます。誰かが私が間違っていることを指摘してくれれば、それは大きな助けになるでしょう。
import java.util.*;
import java.awt.*;
import javax.swing.*;
public class Graphic extends JFrame
{
public static void main(String[] args)
{
ArrayList<Colorsorter> derp = new ArrayList<Colorsorter>();
Colorsorter oneColor = new Colorsorter(0,0,0);
int R;
int G;
int B;
Random colorgen = new Random();
for(int n = 0; n < 50; n++)
{
R = colorgen.nextInt(256);
G = colorgen.nextInt(256);
B = colorgen.nextInt(256);
oneColor = new Colorsorter(R,G,B);
derp.add(oneColor);
}
}
public Graphic()
{
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setSize(500,1000);
setVisible(true);
}
public void paint(Graphics page)
{
for(int h = 0; h < 10; h++)
{
for(int l = 0; l < 5; l++)
{
page.setColor(new Color(255,215,0));
page.drawOval(50+(l*100), 40+(h*100), 100, 40);
page.fillOval(50+(l*100), 40+(h*100), 100, 40);
page.setColor(new Color(0, 0, 0));
page.drawString("Red: " + oneColor.getRed()+ " " + "Green: " + oneColor.getGreen() + " " + "Blue: " + oneColor.getBlue(), 20+(100*l), 90+(100*h));
}
}
}
}
// ドライバ
import java.util.*;
import java.awt.*;
import javax.swing.*;
public class Colorsorter extends Color implements Comparable <Colorsorter>
{
public Colorsorter()
{
super(0,0,0);
}
public Colorsorter (int r, int g, int b)
{
super(r,g,b);
}
public String toString()
{
return("Red: " + getRed() + " " + "Green: " + getGreen() + " " + "Blue: " + getBlue() + " " + "\n");
}
public int compareTo (Colorsorter colorsort)
{
return getRed() - colorsort.getRed();
}
}
44 行目にエラーが表示されます: Graphic.java:44: error: cannot find symbol page.drawString("Red: " + oneColor.getRed()+ " " + "Green: " + oneColor.getGreen()... .; ................................................................. ................... ^