【发布时间】:2020-02-24 19:56:54
【问题描述】:
当我在 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);
}
}
这是我想要的结果: enter image description here
我只是想更正它以组织起来,这样我就不会在paint方法中声明所有局部变量我只想用不同的方法将它分开,问题是颜色不会改变。请帮助我,非常感谢。 :)
【问题讨论】:
-
您的
fillPolygon方法没有使用它的g2参数。 -
即使我使用它并将其放入 fillPolygon 也没有任何反应
-
Component.getGraphics()永远不应该被调用。 (我希望它的文件表明这一点。) -
不要使用小程序。它们已经过时了。
-
我也不想使用它,但我的主题 OOP 必须通过。
标签: java awt graphics2d java-2d japplet