Hallo zusammen!
Ich möchte ein DateField schreiben das jedes mal wenn man eine Eingabe macht anzeigt was man noch eingeben muss.
z.B. 1.Eingabe =EingabeD.MM.YYYY
2.Eingabe =Eingabe1+Eingabe2.MM.YYYY
3.Eingabe =Eingabe1+Eingabe2.Eingabe3M.YYYY
Nun weiß ich nicht wie ich bei einem PlainDocument die Eingaben wieder herausbekomme für die 2te Eingabe.
Und was auch nicht klappt ist als aller 1. das setText("DD.MM.YYYY")
Nun ein bischen Code zu besseren Vorstellung der Problems
Ich möchte ein DateField schreiben das jedes mal wenn man eine Eingabe macht anzeigt was man noch eingeben muss.
z.B. 1.Eingabe =EingabeD.MM.YYYY
2.Eingabe =Eingabe1+Eingabe2.MM.YYYY
3.Eingabe =Eingabe1+Eingabe2.Eingabe3M.YYYY
Nun weiß ich nicht wie ich bei einem PlainDocument die Eingaben wieder herausbekomme für die 2te Eingabe.
Und was auch nicht klappt ist als aller 1. das setText("DD.MM.YYYY")
Nun ein bischen Code zu besseren Vorstellung der Problems
Code:
public class MEDJDateField extends JTextField implements FocusListener
{
private StringBuffer sb;
public void init()
{
addFocusListener(this);
super.setText(DD.MM.YYYY);
this.setDocument(new IntegerDocument());
}
public void setText(String sBeschriftung)
{
super.setText(sBeschriftung!=null ?sBeschriftung:"");
}
class IntegerDocument extends PlainDocument {
public IntegerDocument()
{
sb=new StringBuffer();
}
public void insertString(int offs, String str, AttributeSet a) throws BadLocationException
{
try {
if(sb.length()>=8)
{
Toolkit.getDefaultToolkit().beep();
return;
}
Integer.parseInt(str);
sb.append(str);
// nun stehen noch die alten Werte im Textfeld ,die aber jetzt
//gelöscht werden sollten um die neuen reinschreiben zu können
switch(sb.length())
{
case 1:
super.insertString(offs,sb.toString()+"D.MM.YYYY",a);
break;
case 2:
super.insertString(offs,sb.toString()+".MM.YYYY",a);
break;
case 3:
super.insertString(offs,sb.toString().substring(0,2)+"."+sb.toString().substring(2,3)+"M.YYYY",a);
break;
case 4:
super.insertString(offs,sb.toString().substring(0,2)+"."+sb.toString().substring(2,4)+".YYYY",a);
break;
case 5:
super.insertString(offs,sb.toString().substring(0,2)+"."+sb.toString().substring(2,4)+"."+sb.toString().substring(4,5)+"YYY",a);
break;
case 6:
super.insertString(offs,sb.toString().substring(0,2)+"."+sb.toString().substring(2,4)+"."+sb.toString().substring(4,6)+"YY",a);
break;
case 7:
super.insertString(offs,sb.toString().substring(0,2)+"."+sb.toString().substring(2,4)+"."+sb.toString().substring(4,7)+"Y",a);
break;
case 8:
super.insertString(offs,sb.toString().substring(0,2)+"."+sb.toString().substring(2,4)+"."+sb.toString().substring(4,8),a);
break;
}
} catch (NumberFormatException e) {
Toolkit.getDefaultToolkit().beep();
//Toolkit.getDefaultToolkit().beep();
}
}
}
public void focusGained(FocusEvent arg0) {
this.selectAll();
}
public void focusLost(FocusEvent arg0) {
// TODO Auto-generated method stub
}
}