document.write('
Data hosted with ♥ by Pastebin.com - Download Raw - See Original
  1. /**
  2.  * ImagePanel adalah Swing Component yang bisa menampilkan OFImage.
  3.  * ini terkonstruksi sebagai subclass dari JComponent dengan tambahan fungsional
  4.  *
  5.  * @author Muhammad Bagus Istighfar
  6.  * @version 10 Desember 2020
  7.  */
  8.  
  9. import javax.swing.*;
  10. import java.awt.*;
  11. public class ImagePanel extends JComponent
  12. {
  13.     //panjang dan lebar dari panel sekarang
  14.     private int width, height;
  15.  
  16.     /**sebuah internal image buffer untuk painting.
  17.      *untuk displaynya, image buffer ini di-copy ke layar
  18.      */
  19.     private OFImage panelImage;
  20.  
  21.     /**
  22.      * membuat ImagePanel yang baru dan kosong
  23.      */
  24.     public ImagePanel(){
  25.         width = 1280; //ukuran ini bebas ya untuk panel kosong
  26.         height = 720;
  27.         panelImage =null;
  28.     }
  29.  
  30.     /**
  31.      * mengatur gambar yang akan ditampilkan
  32.      * @param image
  33.      */
  34.     public void setImage(OFImage image){
  35.         if(image!=null){
  36.             width = image.getWidth();
  37.             height = image.getHeight();
  38.             panelImage = image;
  39.             repaint();
  40.         }
  41.     }
  42.  
  43.     /**
  44.      * menghapus gambar pada panel
  45.      */
  46.     public void clearImage()
  47.     {
  48.         Graphics imageGraphics = panelImage.getGraphics();
  49.         imageGraphics.setColor(Color.LIGHT_GRAY);
  50.         imageGraphics.fillRect(0,0, width,height);
  51.         repaint();
  52.     }
  53.  
  54.     // metode di bawah ini merupakan warisan(inherited)
  55.     // dari superclass
  56.  
  57.     /**
  58.      * memberitahu layout manager bagaimana besar yang kita mau
  59.      * (method ini dipanggi oleh  layout manager untuk menaruh
  60.      * komponen)
  61.      *
  62.      * @return dimensi yang cocok untuk komponen
  63.      */
  64.     public Dimension getPreferredSize(){
  65.         return new Dimension(width,height);
  66.     }
  67.  
  68.     public void paintComponent(Graphics g)
  69.     {
  70.         Dimension size = getSize();
  71.         g.clearRect(0,0,size.width, size.height);
  72.         if(panelImage!=null){
  73.             g.drawImage(panelImage, 0, 0, null);
  74.         }
  75.     }
  76. }
');