Banner Java

Menggunakan Kelas Dimension Di Java

Kelas Dimension termasuk dalam helper class. Kelas Dimension digunakan untuk menentukan dimensi (panjang dan lebar) suatu komponen sesuai dengan yang diinginkan. Anda dapat menentukan ukuran berbeda beberapa komponen dari kelas yang sama sebelum komponen tersebut diletakkan dan disusun di content pane dari kelas-kelas wadah (container classes) seperti kelas JFrame, JPanel dan JApplet. Berikut ini adalah hirarki turunan kelas Dimension:

Hirarki kelas Dimension

Berikut ini adalah tabel-tabel dari data file, konstruktor dan metoda kelas Dimension yang digunakan untuk menentukan dimensi sebuah komponen di Java:

Data field kelas Dimension.
Data Filed Keterangan
width Dimensi lebar, nilai int negatif diperbolehkan.
height Dimensi tinggi, nilai int negatif diperbolehkan.

Normalnya, nilai data field width dan height adalah integer (int) positif. Konstruktor kelas Dimension tidak melarang Anda untuk memberi nilai negatif ke kedua data field tersebut. Apabila nilai kedua data field adalah negatif, hal ini akan membuat beberapa metoda yang didefinisikan di obyek lain tidak akan beroperasi sebagaimana mestinya.

Konstruktor kelas Dimension.
Konstruktor Keterangan
Dimension() Mengkonstruksi obyek kelas Dimension dengan width dan height masing-masing bernilai 0.
Dimension(int width, int height) Mengkonstruksi obyek kelas Dimension dengan width dan height ditentukan.

Metoda kelas Dimension.
Metoda Keterangan
getWidth() Mengembalikan dimensi lebar dengan presisi double.
getHeight() Mengembalikan dimensi tinggi dengan presisi double.
getSize() Mengembalikan ukuran dimensi sebuah obyek.
setSize(int width, int height) Mengatur kembali ukuran dimensi obyek dengan menentukan lebar dan tinggi.
setSize(double width, double height) Mengatur kembali ukuran dimensi obyek dengan menentukan lebar dan tinggi dalam presisi double.

Contoh program berikut ini mendemonstrasikan penggunaan kelas Dimension untuk mengatur dimensi komponen. Lima buah obyek dari kelas JButton yang masing-masing mempunyai dimensi berbeda diletakkan di content pane dari frame (kelas JFrame).

// Nama file : DemoDimension.java
// Mendemonstrasikan penggunakan kelas Dimension

// mengimpor kelas
import javax.swing.JFrame;
import javax.swing.JButton;
import java.awt.Container;
import java.awt.FlowLayout;
import java.awt.Dimension;
import java.awt.Color;

// Mendeklarasikan kelas
public class DemoDimension extends JFrame {

   // Konstruktor kelas DemoDimension
   public DemoDimension() {

      JButton button1, button2, button3, button4, button5;
      FlowLayout layout = new FlowLayout(FlowLayout.LEFT, 3, 3);

      Container container = getContentPane();
      container.setLayout(layout);
      container.setBackground(Color.YELLOW);

      Dimension dimension1 = new Dimension(120, 50);
      button1 = new JButton("Tombol 1");
      button1.setPreferredSize(dimension1);

      button2 = new JButton("Tombol 2");
      button2.setPreferredSize(new Dimension(90, 70));

      button3 = new JButton("Tombol 3");
      button3.setPreferredSize(new Dimension(100, 40));

      button4 = new JButton("Tombol 4");
      button4.setPreferredSize(new Dimension(90, 60));

      button5 = new JButton("Tombol 5");
      button5.setPreferredSize(new Dimension(100, 30));

      container.add(button1);
      container.add(button2);      
      container.add(button3);
      container.add(button4);
      container.add(button5);
   }

   // Metoda main
   public static void main(String[] args) {
      DemoDimension frame = new DemoDimension();
      frame.setTitle("Kelas DemoBorderLayout");
      frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
      frame.setSize(330, 175);
      frame.setVisible(true);
   }
}

Dari kode program di atas, lima buah komponen dari kelas JButton diletakkan di content pane dari frame. Obyek tersebut mempunyai dimensi berbeda saat diletakkan. Anda dapat menggunakan metoda setPreferredSize dengan parameter berupa obyek (instance) dari kelas Dimension.

Program menggunakan FlowLayout untuk mengatur letak komponen di content pane. Saat Anda menggunakan layout manager yang lain seperti GridLayout atau BorderLayout, aturan yang berlaku di layout manager tersebut menjadi prioritas, artinya dimensi dari komponen tidak berlaku lagi. Misalnya, Anda merubah FlowLayout ke BorderLayout, saat komponen pertama diletakkan di posisi PAGE_START atau PAGE_END, maka komponen akan merentang penuh untuk mencapai sisi kanan dan kiri dan dimensi komponen yang sebelumnya ditentukan akan mengalami perubahan. Anda dapat mencoba meletakkan komponen dengan dimensi yang telah ditentukan sebelumnya ke layout manager yang lain untuk mengetahui pengaruhnya.

Menggunakan kelas Dimension

Untuk memperbaiki mutu konten, Anda dapat berpartisipasi dengan cara melaporkan apabila menemukan kesalahan ketik, kata-kata rangkap, redaksi kurang pas (jelas), gambar pendukung tidak ada dan sebagainya melalui form Kontak Kami untuk mendapatkan perbaikan. Terima kasih atas kerjasamanya.

Hindro HindriantoHindro adalah pendiri sekaligus admin termasmedia.com dan topikit.com, blog online yang mengulas teknologi informasi. Dunia web mulai ditekuni tahun 2012 dengan mempelajari CMS Joomla dan Wordpress. Beberapa buku yang sekarang dipelajari antara lain PHP, HTML5, ASP.NET 4.5, JavaScript, CSS3, MySQL, Adobe Dreamweaver, Adobe Photoshop dan Adobe Flash.