2015-09-09 66 views
0

我想在這裏做兩件事 1.我在我的代碼中有一個imageIcon(稱爲dice),當你按下它時,它會更改爲移動的imageIcon(稱爲dice2 )。但是我沒有調整運動的ImageIcon 2.設置定時器用於dice2並在其完成的「骰子」顯示,調整一個具有gif格式的imageIcon

這裏是我到目前爲止的代碼

ImageIcon dice = new ImageIcon("dice.png") ; 
    Image image = dice.getImage(); // transform it 
    Image newimg = image.getScaledInstance(150, 120,java.awt.Image.SCALE_SMOOTH); // scale it the smooth way 
    dice = new ImageIcon(newimg) ; 
    dice_1 = new JButton(dice);   
    dice_1.addActionListener(new ActionListener() { 
     public void actionPerformed(ActionEvent e) { 
      dicePanel.remove(dice_1); 
      dicePanel.revalidate(); 
      dicePanel.repaint();     
      ImageIcon dice2 = new ImageIcon("dice.gif"); 
      dice_1 = new JButton(dice2); 
      dice_1.setOpaque(false); 
      dice_1.setContentAreaFilled(false); 
      dice_1.setBorderPainted(false); 
      dicePanel.add(dice_1); 
      // random number 
      Random r = new Random(); 
      R = r.nextInt(10) + 2; 
      randomNumbe.setText("تقدم " + R + " خطوة"); 
     } 
    }); 
+0

我不確定您是否可以在Java中調整gif(或者至少不是沒有大量工作),最好是在外部調整它,我們有大小的圖像,每個方面一個,使用Swing'Timer',隨機地自行切換圖像 – MadProgrammer

+0

有沒有一個例子,我可以遵循Timer? – Neyon

+0

對於[示例](http://stackoverflow.com/questions/28342538/java-swing-timer-and-animation-how-to-put-it-together/28342986#28342986),[示例](http:/ /stackoverflow.com/questions/21034679/jframe-shows-up-grey-blank/21034770#21034770) – MadProgrammer

回答

0

這兩種備份SCALE_SMOOTH的區域平均算法而SCALE_AREA_AVERAGING似乎不適用於動畫GIF。當我使用它時,我得到一個空白圖像。

雖然SCALE_DEFAULT效果很好。