Banner Java

Menggunakan Kelas Font Di Java

Terkadang komponen perlu diperindah tidak hanya sebatas menggunakan warna saja, tetapi huruf yang tertera di komponen dapat pula dimodifikasi, Anda mungkin ingin merubah jenis huruf ke SansSerif atau Serif, mungkin perlu dipertebal (bold), diberi garis bawah (underline) atau dicetak miring (italic). Anda dapat melakukan hal tersebut melalui kelas bantu (helper class) java.awt.Font dengan menggunakan metoda setFont dari kelas Component. Berikut ini adalah hirarki turunan dari kelas java.awt.Font.

Hirarki turunan kelas Font

Kelas Font mempunyai dua buah konstruktor dan salah satu konstruktor yang paling sering digunakan untuk mengkonstruksi obyek font adalah sebagai berikut:

   Font(String name, int style, int size);

Konstruktor di atas untuk membuat obyek font baru dengan nama, model dan ukuran yang ditentukan. Nama font dapat berupa font apa saja yang sekarang ini didukung oleh sistem komputer dimana Anda menjalankan program. Model font dapat dipilih diantara Font.BOLD, Font.PLAIN, Font.ITALIC atau kombinasi dari ketiga model, misalnya Font.BOLD + Font.ITALIC. Ukuran font dapat berupa integer (int) positif berapa saja. Font diukur dalam points dan satu point adalah 1/72 inch.

Nama semua font yang telah tersedia di sistem komputer dapat diketahui dengan membuat obyek dari kelas java.awt.GraphicsEnvironment menggunakan metoda statik getLocalGraphicsEnvironment() dari kelas tersebut. Untuk mendapatkan nama font yang tersedia di sistem komputer, dapat digunakan metoda getAvailableFontFamilyNames().

Contoh program berikut ini menampilkan berbagai nama font yang tersedia di sistem komputer yang penulis gunakan. Program juga akan memperkenalkan komponen grafis baru yaitu kelas JScrollPane dan penggunaan kelas Font untuk merubah tampilan standar obyek dari kelas JScrollPane.

// Nama file : FontSystem.java
// Mendapatkan nama font yang tersedia di sistem komputer

// Mengimpor kelas
import java.awt.GraphicsEnvironment;
import java.awt.BorderLayout;
import java.awt.Container;
import java.awt.Font;
import javax.swing.JScrollPane;
import javax.swing.JFrame;
import javax.swing.JTextArea;

// Deklarasi kelas
public class FontSystem extends JFrame {

   public FontSystem() {
      Container container = getContentPane();
      container.setLayout(new BorderLayout());

      GraphicsEnvironment graphic;
      graphic = GraphicsEnvironment.getLocalGraphicsEnvironment();
      String[] namaFont = graphic.getAvailableFontFamilyNames();

      String string = "";
      for (int x = 0; x < namaFont.length; x++) {
         string += namaFont[x];
         string += (x < namaFont.length - 1) ? "\n" : "";
      }

      Font font = new Font("Tahoma", Font.BOLD + Font.ITALIC, 11);
      JTextArea area = new JTextArea();
      area.append(string);
      area.setFont(font);

      JScrollPane pane = new JScrollPane(area);
      container.add(pane, BorderLayout.CENTER);
   }

   // Metoda main
   public static void main(String[] args) {
      FontSystem frame = new FontSystem();
      frame.setTitle("Nama Font Tersedia di Sistem");
      frame.setSize(270, 170);
      frame.setVisible(true);
      frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
   }
}

Pernyataan baris nomor 21 menghasilkan obyek kelas GraphicsEnvironment. Acuan ke obyek tersebut diberikan ke variabel graphic. GraphicsEnvironment adalah kelas abstrak yang menghasilkan gambaran lingkungan grafis dari sebuah sistem komputer tertentu. Untuk mendapatkan nama-nama font dari sistem komputer, Anda dapat menggunakan metoda statik getAvailableFontFamilyNames dari kelas tersebut. Nama-nama font yang terdapat di sistem komputer kemudian disimpan ke variabel larik tipe string, namaFont.

Perulangan for baris nomor 25 – 28 akan melakukan iterasi untuk menyimpan nama-nama font ke dalam variabel string dengan tipe String. Semua nama font yang terdapat di sistem komputer dan tersimpan di variabel string kemudian diletakkan di variabel acuan area, variabel yang mengacu ke obyek dari kelas JTextArea. Font yang terdapat di dalam obyek area kemudian dirubah agar ditampilkan dengan cetak tebal dan miring menggunakan metoda setFont(Color c).

Baris nomor 35 adalah pernyataan untuk mengkonstruksi obyek kelas JScrollPane dan memberi variabel pane acuan ke obyek tersebut. Parameter konstruktor kelas JScrollPane diberi argumen berupa variabel area yang mengacu ke obyek dari kelas JTextArea. Dengan memberikan variabel area sebagai argumen, maka area teks ditampilkan dengan batang penggulung di sebelah kanan. Batang penggulung dapat digunakan untuk melihat nama-nama font lain yang mungkin ditampilkan di area teks dengan menggerakkan ke atas atau ke bawah. Pernyataan baris nomor 36 kemudian meletakkan obyek kelas JScrollPane yang diacu oleh veriabel acuan pane ke content pane dari frame.

Menggunakan kelas Font di Java

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.