-1

ここに画像を入れようとしている私のコードがありますが、毎回 getimage() 部分にエラーがあります。助けていただけますか?ありがとうございました。私はそれが奇妙なプロジェクトであることを知っています。または、円を描いて分割するコードの書き方を教えてください。すべてのピースは異なる色であり、それらをリンクされたリストに入れ、ユーザーに嫌いな色を尋ねてから削除します。残りの色が1つになるまで、毎回同じことをします。どうすればいいのかわからないので、別の方法でやったので、助けてもらえますか?

import java.util.*;
import java.util.Scanner;
import javax.swing.*;
import java.applet.*; 
import java.awt.*; 
public class ExtraCredit extends Applet
{
//graphic
public void paintOr(Graphics g) 
{
Image img;
  MediaTracker tr;
 tr = new MediaTracker(this);
  img = getImage(getCodeBase(), "Or.png");
  tr.addImage(img,0);
  g.drawImage(img, 0, 0, this);
}
public void paintRed(Graphics g1) 
{
Image img;
  MediaTracker tr;
 tr = new MediaTracker(this);
  img = getImage(getCodeBase(), "red.png");
  tr.addImage(img,0);
  g1.drawImage(img, 0, 0, this);
}

public void paintR(Graphics g2) 
{
Image img;
  MediaTracker tr;
 tr = new MediaTracker(this);
  img = getImage(getCodeBase(), "R.png");
  tr.addImage(img,0);
  g2.drawImage(img, 0, 0, this);
}
public void paintRBrown(Graphics g3) 
{
Image img;
  MediaTracker tr;
 tr = new MediaTracker(this);
  img = getImage(getCodeBase(), "rbrown.png");
  tr.addImage(img,0);
  g3.drawImage(img, 0, 0, this);
}
public void paintBr(Graphics g4) 
{
Image img;
  MediaTracker tr;
 tr = new MediaTracker(this);
  img = getImage(getCodeBase(), "Br.png");
  tr.addImage(img,0);
  g4.drawImage(img, 0, 0, this);
}

public void paintBrBlue(Graphics g5) 
{
Image img;
  MediaTracker tr;
 tr = new MediaTracker(this);
  img = getImage(getCodeBase(), "brblue.png");
  tr.addImage(img,0);
  g5.drawImage(img, 0, 0, this);
}

     //----

   public static void main(String[] args)
   {
       ExtraCredit ex = new ExtraCredit();

      String cF;
       int i=0;
        LinkedList<String> c = new LinkedList<String>();
        c.add("red");
        c.add("brown");
        c.add("blue");
        c.add("green");
   Scanner scan = new Scanner (System.in);
   //first loop
   while(i!=4)
   {
   i++;
    System.out.println ("You have a list of color:brown, blue, green, red"); 
    Graphics g = ex.getGraphics();

  ex.paintOr(g);
    System.out.println ("which color you most hate:"); 
    String color1 = scan.nextLine();
     //cF=c.getFirst();

    if(color1 == c.getFirst())
    {
        Graphics g1 = ex.getGraphics();
  ex.paintRed(g1);
    }

    c.remove(color1);
    }
    i=0;

    // second loop
    while(i!=3)
    {
   i++;
    System.out.println ("You have a list of color:"+ c); 
    Graphics g2 =ex.getGraphics();
  ex.paintR(g2);
    System.out.println ("which color you most hate:"); 
    String color2 = scan.nextLine();
    if(color2 == c.getFirst())
    {
        Graphics g3 = ex.getGraphics();
  ex.paintRBrown(g3);
    }


    c.remove(color2);
    }

    i=0;
    //third loop
     while(i!=2)
    {
   i++;
    System.out.println ("You have a list of color:"+ c); 
    Graphics g4=ex.getGraphics();
  ex.paintBr(g4);
    System.out.println ("which color you most hate:"); 
    String color3 = scan.nextLine();
    cF=c.getFirst();
    if(color3 == c.getFirst())
    {
        System.out.println ("The color you like:" + c);
      Graphics g5 = ex.getGraphics();
  ex.paintBrBlue(g5);  
    }


    c.remove(color3);
    }



}

}
4

1 に答える 1

2

これex.getGraphics()は本当に悪い考えです。これは、AWT や Swing での描画方法ではありません。

コマンド ライン入力と UI 要素を混在させることは決して良い考えではありません。 を使用しているAppletと、ユーザーが実際にフィードバックを提供する能力を失うという事実を追加してください...

AWT/Swing はイベント駆動型の環境です。イベントは、(ほとんど) マウスとキーボードの入力から作成されます。

詳細については、時間をかけて Swing を使用した GUI の作成をお読みください。

カスタム ペイント2D グラフィックスの実行、特に形状のセクションも参照することを忘れないでください。

于 2013-02-06T00:21:58.707 に答える