document.write('
Data hosted with ♥ by Pastebin.com - Download Raw - See Original
  1. /**
  2.  * ImagePanel adalah komponen Swing yang dapat menampilkan gambar OFImage. Ini dibangun sebagai
  3.  * subclass dari JComponent dengan fungsionalitas tambahan dari pengaturan OFImage yang
  4.  * akan ditampilkan di permukaan komponen ini.
  5.  *
  6.  * @author Timotius Wirawan
  7.  * @version 05/12/2020
  8.  */
  9.  
  10. import java.awt.*;
  11. import javax.swing.*;
  12. import java.awt.image.*;
  13.  
  14. public class ImagePanel extends JComponent
  15. {
  16.     //lebar dan tinggi saat ini dari panel ini
  17.     private int width, height;
  18.    
  19.     //Internal image buffer untuk painting yang akan ditampilkan di layar
  20.     private OFImage panelImage;
  21.    
  22.     //Membuat ImagepPanel baru yang kosong
  23.     public ImagePanel()
  24.     {
  25.         width = 360; // Ukuran panel kosongan bebas
  26.         height = 240;
  27.         panelImage = null;
  28.     }
  29.    
  30.     /**
  31.      * Mengatur gambar yang akan ditampilkan di panel
  32.      *
  33.      * @param image Gambar yang akan ditampilkan
  34.      */
  35.     public void setImage(OFImage image)
  36.     {
  37.         if (image != null)
  38.         {
  39.             width = image.getWidth();
  40.             height = image.getHeight();
  41.             panelImage = image;
  42.             repaint();
  43.         }
  44.     }
  45.    
  46.     //Membersihkan gambar di panel
  47.     public void clearImage()
  48.     {
  49.         Graphics imageGraphics = panelImage.getGraphics();
  50.         imageGraphics.setColor(Color.LIGHT_GRAY);
  51.         imageGraphics.fillRect(0, 0, width, height);
  52.         repaint();
  53.     }
  54.    
  55.     // Mehod berikut merupakan definisi ulangdari metode yang diwarisi dari superclass
  56.    
  57.     /**
  58.      * Memberi tahu seberapa besar lauout yang diinginkan
  59.      *
  60.      * @return Dimensi yang dipilih untuk komponen ini
  61.      */
  62.     public Dimension getPreferredSize()
  63.     {
  64.         return new Dimension(width, height);
  65.     }
  66.    
  67.     /**
  68.      * Komponen ini perlu ditampilkan kembali. Salin gambar internal ke layar.
  69.      *
  70.      * @param g Konteks grafik yang dapat digunakan untuk menggambar pada komponen ini.
  71.      */
  72.     public void paintComponent(Graphics g)
  73.     {
  74.         Dimension size = getSize();
  75.         g.clearRect(0, 0, size.width, size.height);
  76.        
  77.         if (panelImage != null)
  78.         {
  79.             g.drawImage(panelImage, 0, 0, null);
  80.         }
  81.     }
  82. }
');