Oct 082012
 

Assalamu’ alaikum wr wb

Replace char on swt (Membaatasi input keyboard dalam swt Text)

Eclipse

Terkadang kita saat membuat text input pada sebuah aplikasi kita ingin hanya membutuhakan bis diisi dengan number saja, atau mungkin bisa number atau huruf tanpa ada karakter – karakter khusus yang dapat masuk.

Dulu saya pernah membuat tutorial dengan menggunakan swing , tetapi karena pekerjaan saya sekarang sedang banyak menggunakan swt(Standart Widget Toolkit) milik dari IBM atau Eclipse. Selain tentang membaatasi text saya juga akan menunjukkan bagaimana caranya membuat class turunan dari swt widget.

Sebenarnya saya ada sedikit maslah yang mungkin ada alami juga saat membuat class turunan dari swt widget. saat kita kompile akan muncul error seperti di bawah ini :

Exception in thread “main” org.eclipse.swt.SWTException: Subclassing not allowed

Untuk menutup error pada masalah diatas tambahkan metod checkSubclass  pada class turunan yang anda buat.

Berikut adalah script untuk batasi text dan Pembuatan class turunan dari Text Widget

import org.eclipse.swt.SWT;
import org.eclipse.swt.widgets.Composite;
import org.eclipse.swt.widgets.Event;
import org.eclipse.swt.widgets.Listener;

public class TextFormat extends org.eclipse.swt.widgets.Text{
	public TextFormat(Composite parent, int style) {
		super(parent, style);
		setFormat();
	}
	@Override
	protected void checkSubclass() {
	}
	private void setFormat(){
		this.addListener(SWT.Verify, new Listener() {
			public void handleEvent(Event e) {
				String string = e.text;
				char[] chars = new char[string.length()];
				string.getChars(0, chars.length, chars, 0);
				for (int i = 0; i < chars.length; i++) {
					if (('a'<= chars[i] && chars[i] <= 'z'
							|| '0' <= chars[i] && chars[i] <= '9'
							|| 'A'<= chars[i] && chars[i] <= 'Z')==false) {
						e.doit = false;
						return;
					}
				}
			}
		});
	}
}

Oke semoga membantu dan semoga dapat di kembangkan.

Wassalamu’ alaikum wr wb

Facebook Comments

 Leave a Reply

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code class="" title="" data-url=""> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong> <pre class="" title="" data-url=""> <span class="" title="" data-url="">

(required)

(required)