Advertisement
Dr_U

9_ImagePanelClass

Dec 10th, 2020
91
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 2.30 KB | None | 0 0
  1. import java.awt.*;
  2. import javax.swing.*;
  3. import java.awt.image.*;
  4.  
  5. /**
  6.  * An ImagePanel untuk menampilkan OFimage
  7.  * dengan membuat sebauh subclass dari Jcomponet dengan fungsi menampilkan
  8.  * permukaan component nya
  9.  *
  10.  * @author Yusuf Anfasya
  11.  * @version 1
  12.  */
  13. public class ImagePanel extends JComponent
  14. {
  15.     // ukuran tinggi dan lebar panel
  16.     private int lebar,tinggi;
  17.  
  18.     // sebuah gambar sementara untuk pewarnaan pada tampilan sebenarnya
  19.     // gambar ini akan di salin ke layar
  20.     private OFImage panelGambar;
  21.  
  22.     /**
  23.      * membuat panel imagepanel
  24.      */
  25.     public ImagePanel()
  26.     {
  27.         lebar = 360;    // size untuk panel dalam keadaan kosong
  28.         tinggi = 240;
  29.         panelGambar = null;
  30.     }
  31.  
  32.     /**
  33.      * mengatur gambar yang akan ditampilkan
  34.      *
  35.      * @param image  untuk gambar yang ditampilkan
  36.      */
  37.     public void setImage(OFImage gambar)
  38.     {
  39.         if(gambar != null) {
  40.             lebar = gambar.getWidth();
  41.             tinggi= gambar.getHeight();
  42.             panelGambar = gambar;
  43.             repaint();
  44.         }
  45.     }
  46.    
  47.     /**
  48.      * mengosongkan paneel
  49.      */
  50.     public void clearImage()
  51.     {
  52.         Graphics imageGraphics = panelGambar.getGraphics();
  53.         imageGraphics.setColor(Color.LIGHT_GRAY);
  54.         imageGraphics.fillRect(0, 0, lebar, tinggi);
  55.         repaint();
  56.     }
  57.    
  58.     // The following methods are redefinitions of methods
  59.     // inherited from superclasses.
  60.    
  61.     /**
  62.      * untuk mengatur bentuk seberapa besar yang dibutuhkan
  63.      * mehtods nya dipanggil dengan layout manager untuk menempatkan
  64.      * component
  65.      *
  66.      * @return diutmakan dimensi untuk komponennya
  67.      */
  68.     public Dimension getPreferredSize()
  69.     {
  70.         return new Dimension(lebar, tinggi);
  71.     }
  72.    
  73.     /**
  74.      * komponent ini harus di tampilkan kembali. menyalin gambar internal
  75.      * ke layar(dengan Swing Screen painter setiap saat apabila ingin ditampilkan)
  76.      *
  77.      * @param graphic context bisa digunakan untuk menggambar komponen ini
  78.      */
  79.     public void paintComponent(Graphics g)
  80.     {
  81.         Dimension size = getSize();
  82.         g.clearRect(0, 0, size.width, size.height);
  83.         if(panelGambar != null) {
  84.             g.drawImage(panelGambar, 0, 0, null);
  85.         }
  86.     }
  87. }
  88.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement