hallo hatte zuerst im Anfängerforum gepostet mit dem ergebenis das es an höchstwahrscheinlich am SWT lieht.
Möchte in einem Textfeld nur zahlen und den . und den Backspace gelten lassen.
Hier ist der Link zu dem anderen Thread http://www.java-forum.org/de/viewtopic.php?p=311902#311902
Hier noch mal mein beispielprogram, mit nur einem textfeld, was aber über die gleiche funktion verfügen soll. Dabei kann ich aber aktuell nur zahlen eingeben und weder den . nach die backspace taste zum löschen benutzen.
Sieht jemand einen fehler bzw. kann das programm mal testen
Möchte in einem Textfeld nur zahlen und den . und den Backspace gelten lassen.
Hier ist der Link zu dem anderen Thread http://www.java-forum.org/de/viewtopic.php?p=311902#311902
Hier noch mal mein beispielprogram, mit nur einem textfeld, was aber über die gleiche funktion verfügen soll. Dabei kann ich aber aktuell nur zahlen eingeben und weder den . nach die backspace taste zum löschen benutzen.
Code:
package testverify;
import org.eclipse.swt.layout.GridLayout;
import org.eclipse.swt.events.VerifyEvent;
import org.eclipse.swt.events.VerifyListener;
import org.eclipse.swt.graphics.Point;
import org.eclipse.swt.widgets.Shell;
import org.eclipse.swt.widgets.Display;
import org.eclipse.swt.widgets.Text;
import org.eclipse.swt.SWT;
public class testClass {
private Shell sShell = null;
private Text textPostage = null;
/**
* @param args
*/
public static void main(String[] args) {
Display display = Display.getDefault();
testClass thisClass = new testClass();
thisClass.createSShell();
thisClass.sShell.open();
while (!thisClass.sShell.isDisposed()) {
if (!display.readAndDispatch())
display.sleep();
}
display.dispose();
}
/**
* This method initializes sShell
*/
private void createSShell() {
sShell = new Shell();
sShell.setText("Shell");
sShell.setSize(new Point(300, 200));
sShell.setLayout(new GridLayout());
textPostage = new Text(sShell, SWT.BORDER);
textPostage.setTextLimit(5);
textPostage.addVerifyListener(new VerifyListener()
{
public void verifyText(VerifyEvent e)
{
e.doit = e.text.matches("\\d{1,2}\\.?\\d{0,2}");
}
});
}
}
Sieht jemand einen fehler bzw. kann das programm mal testen