1
私は星を作成するこのクラスを持っています。私はそれを実行すると、色を選択するように頼むメッセージボックスがあります。私は自分の星をその色にしたい。あるいはJava入力に応じて形状の色を変更します
g.setColor(userChosenColor);
:
Color userChosenColor;
public void setColor(Color color) {
this.userChosenColor = color;
}
は次にようpaintComponent
に色を設定:
import java.awt.Color;
import java.awt.Graphics;
import java.awt.Graphics2D;
import java.awt.RenderingHints;
import java.awt.geom.GeneralPath;
import javax.swing.*;
public class Control extends JPanel{
JFrame frame = new JFrame();
String background;
final Color color = Color.getHSBColor(0.56f, 1.0f, 0.8f);
final Color red=Color.red;
final Color green=Color.GREEN;
final Color yellow=Color.YELLOW;
private final double points[][] = {
{ 0, 85 }, { 75, 75 }, { 100, 10 }, { 125, 75 },
{ 200, 85 }, { 150, 125 }, { 160, 190 }, { 100, 150 },
{ 40, 190 }, { 50, 125 }, { 0, 85 }
};
private void doDrawing(Graphics g) {
Graphics2D g2d = (Graphics2D) g;
g2d.setRenderingHint(RenderingHints.KEY_ANTIALIASING,
RenderingHints.VALUE_ANTIALIAS_ON);
g2d.setRenderingHint(RenderingHints.KEY_RENDERING,
RenderingHints.VALUE_RENDER_QUALITY);
GeneralPath star = new GeneralPath();
star.moveTo(points[0][0], points[0][1]);
for (int k = 1; k < points.length; k++)
star.lineTo(points[k][0], points[k][1]);
star.closePath();
g2d.fill(star);
g2d.dispose();
}
@Override
public void paintComponent(Graphics g) {
g.setColor(Color.MAGENTA); //should be the color of chosen button
super.paintComponent(g);
doDrawing(g);
}
public void addMessage() {
Object[] options = {"Red","Green","Yellow", "Black"};
int n = JOptionPane.showOptionDialog(frame, "Choose a color ", "Question of a day",
JOptionPane.YES_NO_CANCEL_OPTION,JOptionPane.QUESTION_MESSAGE,
null,options, options[2]);
for (int i = 0; i < 4; i++) {
if(options[i]=="Red"){
//paint star red }
else if(options[i]=="Green")
//paint star ="Green";
else if(options[i]=="Yellow")
//paint star ="Yellow";
}
}
}
実際は非常に簡単です。まず、ポイントでjava.awt.Polygonを作成します。次に、Graphics2D.draw/fill(Shape)を使用します。詳細については、createStandardStarをチェックしてください:https://sourceforge.net/p/tus/code/HEAD/tree/tjacobs/ui/util/ShapeUtils.java – ControlAltDel
1)より良いヘルプをもっと早く投稿するには、[MCVE]または[Short 、Self Contained、Correct Example](http://www.sscce.org/)を参照してください。 2)「コードブロックの括弧の検出/修正」(http://meta.stackexchange.com/q/251795/155831)を参照して、修正できなくなった問題を解決してください。 –