0
我處於編程類中,我們正在創建一個類以獲取來自用戶的用於製作橢圓的輸入(長軸爲短軸和硬部分顏色) 。我想要做的是讓用戶輸入rbg值並製作自定義顏色來填充橢圓。在主類中,我通過JOptionPane窗口完成了所有輸入,並將其解析爲double值,並在JFrame中顯示橢圓。如何在java中創建新顏色時使用變量
String input = JOptionPane.showInputDialog("Enter the major Axis of your Ellipse: ");
int majAxis = Integer.parseInt(input);
input = JOptionPane.showInputDialog("Enter the Minor Axis of your Ellipse:");
int minAxis = Integer.parseInt(input);
input = JOptionPane.showInputDialog("Enter the red value in the RBG of your color:");
double red = Double.parseDouble(input);
input = JOptionPane.showInputDialog("Enter the blue value in the RBG of your color:");
double blue = Double.parseDouble(input);
input = JOptionPane.showInputDialog("Enter the green value in the RBG of your color:");
double green = Double.parseDouble(input);
然後我有它通過一個構造傳遞給其他類:
Ellipse component = new Ellipse(majAxis, minAxis, red, blue, green);
然後在其他I類具有從一個構造轉印到實例變量然後進入新的顏色構造的數據。
public Ellipse(int maj, int min, double red1, double blue1, double green1)
{
major = maj;
minor = min;
red = red1;
blue = blue1;
green = green1;
}
public void paintComponent(Graphics g)
{
//sets up access to graphics
Graphics2D g2 = (Graphics2D)g;
Color custom = new Color(red, blue, green); //this is where i get an error saying the variable is undefined.
Ellipse2D.Double e = new Ellipse2D.Double((this.getWidth()-major)/2,(this.getHeight()-minor)/2,major,minor);
g2.setColor(Color.BLACK);
g2.draw(e);
}
private int major;
private int minor;
private double red;
private double blue;
private double green;
我需要能夠使用變量,我不知道它爲什麼不工作。因此,請得到一些關於如何做到這一點的建議幫助。我不想使用if語句和預設顏色,所以這是我唯一的選擇。
這應該工作,我不知道爲什麼它不是 –
是否是paintComponent方法是Ellipse類的一部分? – fpw
我們可以看到整個Ellipse類嗎? –