簡體   English   中英

類擴展了BufferedImage,但圖片無法更改。 可以解決嗎?

[英]Class extends BufferedImage, but picture can't change. Any way around this?

我正在嘗試創建一個擴展BufferedImage的簡單Card類,以便可以在屏幕上直接繪制該卡。 但是該卡有兩個面孔。 正面和背面。 我包括一個flip(boolean faceup)方法,我想將圖像從一側更改為另一側,但是似乎由於Class擴展了BufferedImage,所以這是最終的嗎? 我不確定,那是我的印象。 它與構造函數中繪制的原始圖像沒有變化。 有什么辦法可以解決,所以我仍然可以在屏幕上直接刷卡嗎? 這是我到目前為止所擁有的...

  public Card(int rank, int suit)
  {
     super(50,70,TYPE_INT_ARGB);
     this.rank = rank;
     this.suit = suit;
     try{bi = ImageIO.read(getClass().getResource(toString()+".png"));
     back = ImageIO.read(getClass().getResource("back.png"));}
     catch(IOException e){e.printStackTrace();}
     Graphics2D g = createGraphics();
     g.drawImage(back,0,0,null);
     g.dispose();
  }

  public void flip(boolean faceup)
  {
     this.faceup = faceup;
     Graphics2D g = createGraphics();
     if(faceup)g.drawImage(bi,0,0,null);
     else g.drawImage(back,0,0,null);
     g.dispose();
  }

不要擴展BufferedImage。

相反,您的類可以包含兩個BufferedImages:

  1. 前方
  2. 背部

然后,繪制方法將根據“翻轉”屬性繪制正面或背面。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM