У меня проблема с изменением цвета бриллианта, который я создал, когда использую методы в Java. Я не знаю, как наследовать или исправить это с помощью методов. Я просто хочу, чтобы он стал объектно-ориентированным, я не знаю, как правильно это сделать. Пожалуйста, помогите мне.
package Trial;
import javax.swing.*;
import java.awt.*;
public class ColorRed extends JApplet {
public GradientPaint gradientPaint;
public void paint(Graphics g){
super.paint(g);
Graphics2D g2 = (Graphics2D)g;
GradientPaint black = new GradientPaint(50,20,Color.BLACK,50,50,Color.BLACK);
blackDiamond(g2,black);
GradientPaint yellowOrange = new GradientPaint(50,20,Color.YELLOW,50,50,Color.RED);
redDiamond(g2,yellowOrange);
}
public void blackDiamond(Graphics2D g2,GradientPaint gradientPaint){
int a [] = {100,50,100,150,100};
int b [] = {10,60,110,60,10};
setGradientPaint(gradientPaint);
g2.setPaint(getGradientPaint());
fillPolygon(a,b,5,g2);
}
public void redDiamond(Graphics2D g2,GradientPaint gradientPaint){
int a2 [] = {100,60,100,140,100};
int b2 [] = {20,60,100,60,20};
setGradientPaint(gradientPaint);
g2.setPaint(getGradientPaint());
fillPolygon(a2,b2,5,g2);
}
public void fillPolygon(int a [], int b [] ,int c,Graphics2D g2){
getGraphics().fillPolygon(a,b,c);
}
public GradientPaint getGradientPaint() {
return gradientPaint;
}
public void setGradientPaint(GradientPaint gradientPaint) {
this.gradientPaint = gradientPaint;
}
}
Это код, который я пытаюсь создать объектно-ориентированным, но он не наследует цвет градиентной краски.
введите описание изображения здесь
Это результат моего кода
Это код, который еще не создает несколько методов
import javax.swing.*;
import java.awt.*;
public class ColorRed extends JApplet {
public GradientPaint gradientPaint;
public void paint(Graphics g){
super.paint(g);
Graphics2D g2 = (Graphics2D)g;
int a [] = {100,50,100,150,100};
int b [] = {10,60,110,60,10};
g.fillPolygon(a,b,5);
GradientPaint red = new GradientPaint(50,10,Color.RED,10,70,Color.ORANGE);
g2.setPaint(red);
int a2 [] = {100,60,100,140,100};
int b2 [] = {20,60,100,60,20};
g.fillPolygon(a2,b2,5);
}
}
Это результат, который я хочу: введите описание изображения здесь
Я просто хочу исправить это так, чтобы я не объявлял все локальные переменные в методе рисования. Я просто хочу разделить его различными методами, проблема в том, что Colorне меняется. Пожалуйста, помогите мне большое спасибо. :)