Advertisement
mbah_bejo

ImagePanel

Nov 23rd, 2020
895
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 1.96 KB | None | 0 0
  1. import javax.swing.*;
  2. import java.awt.*;
  3.  
  4. /**
  5.  * ImagePanel adalah Swing Component yang bisa menampilkan OFImage.
  6.  * ini terkonstruksi sebagai subclass dari JComponent dengan tambahan fungsional
  7.  * dari pengaturan OFImage yang akan ditampilkan pada permukaan komponen ini
  8.  */
  9. public class ImagePanel extends JComponent {
  10.     //panjang dan lebar dari panel sekarang
  11.     private int width, height;
  12.  
  13.     //sebuah internal image buffer untuk painting.
  14.     // untuk displaynya, image buffer ini di-copy ke layar
  15.     private OFImage panelImage;
  16.  
  17.     /**
  18.      * membuat ImagePanel yang baru dan kosong
  19.      */
  20.     public ImagePanel(){
  21.         width = 1280; //ukuran ini bebas ya untuk panel kosong
  22.         height = 720;
  23.         panelImage =null;
  24.     }
  25.  
  26.     /**
  27.      * mengatur gambar yang akan ditampilkan
  28.      * @param image
  29.      */
  30.     public void setImage(OFImage image){
  31.         if(image!=null){
  32.             width = image.getWidth();
  33.             height = image.getHeight();
  34.             panelImage = image;
  35.             repaint();
  36.         }
  37.     }
  38.  
  39.     /**
  40.      * menghapus gambar pada panel
  41.      */
  42.     public void clearImage()
  43.     {
  44.         Graphics imageGraphics = panelImage.getGraphics();
  45.         imageGraphics.setColor(Color.LIGHT_GRAY);
  46.         imageGraphics.fillRect(0,0, width,height);
  47.         repaint();
  48.     }
  49.  
  50.     // methods di bawah ini merupakan warisan(inherited)
  51.     // dari superclass
  52.  
  53.     /**
  54.      * memberitahu layout manager bagaimana besar yang kita mau
  55.      * (method ini dipanggi oleh  layout manager untuk menaruh
  56.      * komponen)
  57.      *
  58.      * @return dimensi yang cocok untuk komponen
  59.      */
  60.     public Dimension getPreferredSize(){
  61.         return new Dimension(width,height);
  62.     }
  63.  
  64.     public void paintComponent(Graphics g)
  65.     {
  66.         Dimension size = getSize();
  67.         g.clearRect(0,0,size.width, size.height);
  68.         if(panelImage!=null){
  69.             g.drawImage(panelImage, 0, 0, null);
  70.         }
  71.     }
  72. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement