Navigasi buku
Text
Kelas Text digunakan sehingga user bisa mengetikkan atau mengedit suatu teks. Kelas ini juga merupakan turunan dari kelas Control sehingga memiliki metode, bit gaya, dan event seperti pada kelas Control lainnya. Berikut ini adalah metode, bit gaya, dan event khusus untuk kelas Text
| Bit Gaya | Tampilan (pada Linux) | Keterangan | Aturan |
SWT.BORDER | ![]() | Membuat garis tepi di sekitar teks | |
SWT.SINGLE | ![]() | Membuat input teks satu baris | Hanya boleh salah satu SWT.SINGLE atau SWT.MULTI |
SWT.MULTI | ![]() | Membuat input teks banyak baris | |
SWT.LEFT | Kerapatan teks kiri | Hanya boleh salah satu | |
SWT.CENTER | ![]() | Kerapatan teks tengah | |
SWT.RIGHT | Kerapatan teks kanan | ||
SWT.PASSWORD | ![]() | Input teks password | |
SWT.READ_ONLY | ![]() | Membuat input teks hanya bisa dibaca | |
SWT.WRAP | Membuat input teks yang terpotong (bukan tergulung). |
| Variabel | Keterangan |
DELIMITER | Karakter pemisah baris. Biasanya mengikuti sistem operasi (Windows "\r\n" dan Linux "\n") akan tetapi kita bisa atur sesuai kebutuhan |
LIMIT | Maksimum karakter yang bisa dimasukkan ke dalam input teks |
Kontrol Text adalah elemen user interface yang digunakan sehingga user bisa memasukkan atau mengedit string. Kontrol ini bisa dipilih. Pilhannya merupakan tempat di mana karakter akan dimasukkan. Jika pilihannya lebih dari satu karakter, kontrol Text akan menggambar karakter yang dipilih berbeda dengan karakter yang tidak dipilih (misalnya diberi warna latar belakang biru atau hitam, sedangkan teks yang dipilih berwarna terang). Jika pilihannya tidak ada, maka akan digambar seperti caret yang bentuknya seperti huruf I. Caret adalah garis vertikal yang muncul di antara karakter. Caret ini memberi petunjuk kepada user dimana karakter yang diketik akan dimasukkan.
Gambar berikut adalah caret yang diletakkan di akhir teks. Di bawahnya, ketika salah satu karakter dipilih.


Kontrol Text hanya mendukung teks "biasa". Artinya semua karakter pada kontrol ini memiliki jenis huruf dan warna yang sama. Jika kita membutuhkan kontrol untuk mengedit teks yang lebih fleksibel, kita bisa menggunakan org.eclipse.swt.custom.StyledText yang didesain untuk Eclipse. Perhatikan bahwa StyledText bukan widget alami bawaan sistem operasi.
Suatu program aplikasi bisa mendeteksi bahwa sesuatu dalam kontrol teks telah berubah, atau untuk memfilter huruf/angka ketika diketik oleh user. Misalnya, suatu aplikasi memberi teks peringatan bahwa hanya angka dari 0-9 saja yang bisa dimasukkan. Untuk itu, aplikasi akan mendengarkan event SWT.Modify dan SWT.Verify yang akan dijelaskan kemudian.
Ada dua jenis kontrol teks : yang memiliki satu baris teks dan yang memiliki beberapa baris teks.
Kontrol Text Satu Baris dan Multi Baris
Bit gaya SWT.SINGLE digunakan untuk membuat kontrol teks satu baris. Potongan kode berikut membuat kontrol teks satu baris yang dilengkapi dengan garis tepi, kemudian mengisi teksnya dengan "asd".
Text teks1 = new Text(shell, SWT.BORDER | SWT.SINGLE); teks1.setText("asd");
Kontrol teks banyak baris dibuat dengan menggunakan bit gaya SWT.MULTI. Tidak seperti kontrol teks satu baris, kontrol teks banyak baris bisa kita lengkapi dengan SWT.H_SCROLL atau SWT.V_SCROLL pada bit gayanya untuk membuat scroll bar horizontal dan vertikal. Berikut ini adalah potongan kontrol banyak baris dengan garis tepi dan scroll bar, dengan teks yang cukup panjang.
teks2 = new Text(shell, SWT.BORDER | SWT.MULTI | SWT.H_SCROLL | SWT.V_SCROLL); teks2.setText("Hallo SWT, saya sedang belajar " + Text.DELIMITER + "membuat program dengan SWT"); teks2.setSize(100, 70);

Operasi String
Kontrol Text memiliki beberapa metode untuk mengisi dan mengambil string dari widget mirip seperti Label dan Button.
| Metode | Penjelasan |
setText(String s) | Mengeset isi teks. Isi sebelumnya dihapus, kemudian isi baru dimasukkan. Caret akan ditempatkan pada awal teks. Jika teks berisi pemisah baris (misalnya "\n") pada kontrol dengan bit gaya SWT.SINGLE hasilnya tidak akan sesuai dengan yang diharapkan. Karakter mnemonik tidak didukung pada kontrol Text |
getText() | Mengambil String yang merupakan isi teks |
getText(int mulai, int akhir) | Mengambil String yang merupakan isi teks dimulai dari karakter ke-mulai hingga karakter ke-akhir, termasuk karakter ke-mulai dan karakter ke-akhir. Indeks dimulai dari nol. Jika indeks berada di luar jangkauan, SWT akan mencoba mengambil karakter sebanyak mungkin. |
getCharCount | Mengembalikan int yang merupakan jumlah karakter pada kontrol. |
Sebagian string dalam kontrol teks dapat dapat dipilih dengan menggunakan metode setSelection(). Metode ini mengambil argumen berupa posisi caret awal dan posisi caret akhir pilihan. Berikut ini adalah ilustrasi posisi caret di dalam suatu kontrol Text

| Metode | Penjelasan |
setSelection(int caretAwal, int caretAkhir) | Mengeset pilihan pada kontrol dari posisi caretAwal ke posisi caretAkhir. Jika caretAwal dan caretAkhir bernilai sama, maka caret akan berubah menjadi kursor di posisi tersebut. |
setSelection(int caretAwal) | Sama dengan memanggil dengan setSelection(caretAwal, caretAwal) |
selectAll() | Memilih semua string pada kontrol text. Sama dengan memanggil dengan setSelection(0, teks1.getCharCount()) |
clearSelection() | Menghapus pilihan dan memindahkan kursor ke posisi pilihan pertama. (Misalnya, teks "hello" dipilih sebelumnya, setelah metode ini dipanggil, posisi kursor akan berpindah ke sebelum "h") |
getSelection() | Mengembalikan Point yang merupakan posisi pilihan. Point.x yang dikembalikan adalah posisi caretAwal dan Point.y adalah posisi caretAkhir. |
getSelectionCount() | Mengembalikan int yaitu jumlah karakter yang ada di dalam pilihan |
Program berikut membuat input teks banyak baris, yang kemudian memilih kata "Indonesia", seperti pada gambar berikut.

package com.lyracc.pilihteks; import org.eclipse.swt.*; import org.eclipse.swt.widgets.*; import org.eclipse.swt.layout.*; public class PilihTeks { // Variabel-variabel widget kita deklarasikan sebagai // variabel privat private Display display; private Shell shell; private Text teks1; // Konstruktor kelas ini, untuk menginisialisasi semua widget PilihTeks() { // Membuat display dan shell baru display = new Display(); shell = new Shell(display); shell.setText("Hello SWT"); shell.setSize(200,250); shell.setLayout(new FillLayout()); // Inisialisasi label teks1 = new Text(shell, SWT.BORDER | SWT.MULTI | SWT.WRAP | SWT.V_SCROLL | SWT.H_SCROLL); teks1.setText("Kita bersama-sama di sini, untuk menegaskan " + "kembali Indonesia tempat kita berdiri."); teks1.setSelection(52, 61); } // Perintah "standar" SWT, harus ada pada setiap aplikasi SWT public void run() { shell.open(); while (!shell.isDisposed()) if (!display.readAndDispatch()) display.sleep(); display.dispose(); } /** * @param args */ public static void main(String[] args) { // Instansiasi kelas ini, kemudian jalankan run PilihTeks jendela = new PilihTeks(); jendela.run(); } }
Menyisipkan dan Menambah Teks
Karakter bisa disisipkan ke dalam kontrol teks dengan metode insert() atau bisa ditambahkan dengan metode append(). Penyisipan dilakukan pada posisi kursor, sedangkan penambahan teks selalu dilakukan di akhir teks. Untuk menyisipkan teks pada posisi tertentu, pindahkan dahulu posisi caret ke posisi yang diinginkan dengan setSelection(), baru lakukan penyisipan.
| Metode | Penjelasan |
insert(String s) | Menyisipkan String s pada posisi caret. |
append(String s) | Menambahkan String s di akhir input teks |
Operasi Clipboard
Kontrol Text menyediakan fasilitas copy, cut, dan paste ke clipboard. Kontrol ini juga mendukung tombol shortcut (misalnya Ctrl-C, Ctrl-X, dan Ctrl-V) untuk melakukan operasi clipboard dari dan ke kontrol ini. Beberapa platform juga menyediakan menu konteks (yang keluar ketika kita mengklik kanan di kontrol tersebut) yang berisi operasi clipboard ini.
| Metode | Penjelasan |
cut() | Teks yang dipilih di-cut ke dalam clipboard |
copy() | Teks yang dipilih di-copy ke dalam clipboard |
paste() | Menyisipkan karakter dari dalam clipboard di posisi caret. Jika caret sudah memilih sebagian teks, teks dipilih akan dihapus dan diganti dengan teks dari clipboard |
Membatasi Jumlah Karakter yang Bisa Diinput
Untuk beberapa aplikasi, kadang diperlukan batas jumlah karakter yang diinput oleh user. Misalnya, dalam aplikasi database, beberapa tabel hanya bisa menerima input sejumlah karakter saja. Untuk itu, aplikasi perlu membatasi jumlah karakter yang bisa diinput oleh user.
| Metode | Penjelasan |
setTextLimit(int batas) | Mengeset maksimum jumlah karakter yang bisa dimasukkan ke dalam input teks |
getTextLimit() | Mengembalikan int yang merupakan batas maksimum jumlah karakter yang bisa dimasukkan ke dalam input teks |
Untuk membuat input teks yang disamarkan, seperti untuk field password, kita bisa menggunakan bit gaya SWT.PASSWORD. Ketika user mengetikkan karakter pada input teks ini, karakter yang diinput oleh user akan disamarkan dengan suatu karakter, misalnya (*) atau (.). Kita bisa mengeset karakter apa yang digunakan untuk menyamarkan inputnya. Karakter ini disebut karakter echo.
| Metode | Penjelasan |
setEchoCharacter(char c) | Mengeset karakter echo dengan karakter tertentu |
getEchoCharacter() | Mengembalikan char yang merupakan karakter echo dari input teks password |
Input teks banyak baris memiliki fitur tambahan dibandingkan dengan input teks satu baris. Salah satunya, karena inputnya bisa terdiri dari beberapa baris, kita bisa mengeset bagaimana teks akan ditampilkan. Jika kita menggunakan SWT.WRAP, maka teks yang panjang akan otomatis dipotong sehingga akan ditampilkan dalam beberapa baris.
Kita juga bisa mengeset karakter apa yang digunakan sebagai pembatas baris. Setiap sistem operasi memiliki pembatas baris yang mungkin berbeda-beda. (Misalnya pada Windows "\n\r", pada Linux "\n", dan pada Macintosh "\r"). KIta bisa mengubah pembatas barisnya, akan tetapi mungkin aplikasi yang kita buat sulit bekerja lintas platform.
Variabel statik DELIMITER pada kelas Text digunakan untuk mengetahui pembatas baris pada suatu platform. Ketika kita membaca input teks dari user, sistem operasi akan otomatis menambahkan pembatas baris. Untuk itu kadang kita perlu mengetahui pembatas barisnya, sehingga input dari user bisa kita olah lebih tepat. Metode lain yang bisa digunakan adalah getLineDelimiter().
Menggulung Teks
Input teks banyak baris membutuhkan scroll bar baik horizontal dan vertikal. Kadang-kadang kita perlu menggulung layar secara otomatis (supaya user tidak perlu lagi menggulung layar sendiri, misalnya jika teks yang kita berikan sangat panjang dan kita hanya tertarik pada bagian akhir teks).
| Metode | Penjelasan |
setTopIndex(int i) | Menggulung layar sehingga baris ke-i ditampilkan di baris pertama input teks |
getTopIndex() | Mengembalikan int yang merupakan baris pertama input teks yang ditampilkan. |
showSelection() | Jika input teks berupa input teks banyak baris, dan pilihan tidak
ditunjukkan, misalnya karena tersembunyi di bagian bawah teks yang
panjang, setelah memanggil showSelection(), maka teks yang
dipilih akan otomatis ditunjukkan, yaitu dengan menggeser scroll bar
secara otomatis hingga pilihan terlihat |
| Sisipan | Ukuran |
|---|---|
| pilihteks.zip | 1.48 KB |









Komentar
Terima Kasih
Saya masih pemula dalam bahasa pemrograman Java. Di kampus saya (STMIK), bahasa Java belum menjadi pengantar dlm perkuliahan. Saya mulai belajar Java pada komunitas Java yg ada di Kampus (sudah terhenti), dan kami menggunakan editor Netbeans. Sampai sekarang saya masih belajar Java secara otodidak, dan situs ini sangat membantu. Apalagi di sini kita menggunakan Eclipse, hal yg baru bagi saya sehingga semakin bertambah wawasan saya
Semoga Allah Membalas
Semoga Allah Membalas kebaikan anda dalam berbagi ilmu. mudah-mudahan bermanfaat dunia akhirat. amin
Thanks
Mantap ini baru namanya handbook, thank bro udah mau capek-capek bagi ilmu, GBU
saya cukup terbantu dengan
saya cukup terbantu dengan blog anda yang menampilkan pengetahuan tentang java terima kasih ...