Hallo!
Ich möchte ein kleines Programm schreiben mit dem man das Datum x Tage nach dem eingegebenen Datum erhält.
Beispiel: Eingabe des Startdatums = 03.10.2013; Eingabe der Tage = 4; Ausgabe = 07.10.2013
Aktuell hänge ich an der Eingabe des Startdatums. Ich möchte ein Textfeld, dass am besten nur die Eingabe von Ziffern zulässt und automatisch nach "03" einen Punkt setzt und nach "03.10" den zweiten Punkt setzt.
Nachfolgend ist mein aktueller Code. Das automatische Setzen der Punkte hatte ich vor mit einem DocumentListener (siehe Zeile 84) zu realisieren. Meine Frage ist jetzt: Wie bekomme ich die Punkte in das Textfeld (siehe Zeile 54)?
Ich möchte ein kleines Programm schreiben mit dem man das Datum x Tage nach dem eingegebenen Datum erhält.
Beispiel: Eingabe des Startdatums = 03.10.2013; Eingabe der Tage = 4; Ausgabe = 07.10.2013
Aktuell hänge ich an der Eingabe des Startdatums. Ich möchte ein Textfeld, dass am besten nur die Eingabe von Ziffern zulässt und automatisch nach "03" einen Punkt setzt und nach "03.10" den zweiten Punkt setzt.
Nachfolgend ist mein aktueller Code. Das automatische Setzen der Punkte hatte ich vor mit einem DocumentListener (siehe Zeile 84) zu realisieren. Meine Frage ist jetzt: Wie bekomme ich die Punkte in das Textfeld (siehe Zeile 54)?
Java:
import java.awt.Dimension;
import java.awt.GridBagConstraints;
import java.awt.GridBagLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.text.DateFormat;
import java.util.Locale;
import javax.swing.JFormattedTextField;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JTextField;
import javax.swing.event.DocumentEvent;
import javax.swing.event.DocumentListener;
import javax.swing.text.Document;
/**
*
* @author Alexander
*/
public class MainFrame extends JFrame implements ActionListener {
private JFormattedTextField inputDate1;
private JTextField inputDays;
private JTextField inputDate2;
public MainFrame() {
super("TageRechner");
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
JPanel content = new JPanel();
setContentPane(content);
initComponents();
pack();
setLocationRelativeTo(null);
}
private void initComponents() {
setLayout(new GridBagLayout());
GridBagConstraints gbc = new GridBagConstraints();
Dimension d = new Dimension(100, 25);
JLabel label;
label = new JLabel("Datum 1:");
gbc.gridx = 0;
gbc.gridy = 0;
add(label, gbc);
DateFormat df = DateFormat.getDateInstance(DateFormat.MEDIUM, Locale.GERMAN);
inputDate1 = new JFormattedTextField(df);
inputDate1.setPreferredSize(d);
MyDocumentListener myListener = new MyDocumentListener();
inputDate1.getDocument().addDocumentListener(myListener);
gbc.gridx = 1;
gbc.gridy = 0;
add(inputDate1, gbc);
label = new JLabel("Tage:");
gbc.gridx = 0;
gbc.gridy = 1;
add(label, gbc);
inputDays = new JTextField(10);
gbc.gridx = 1;
gbc.gridy = 1;
add(inputDays, gbc);
label = new JLabel("Datum 2:");
gbc.gridx = 0;
gbc.gridy = 2;
add(label, gbc);
inputDate2 = new JTextField(10);
gbc.gridx = 1;
gbc.gridy = 2;
add(inputDate2, gbc);
}
public void actionPerformed(ActionEvent e) {
}
class MyDocumentListener implements DocumentListener {
public void insertUpdate(DocumentEvent e) {
System.out.println("Zeichen = " + e.getDocument().getLength());
Document doc = e.getDocument();
if(doc.getLength() == 2) {
// jetzt sollte ein Punkt als 3. Zeichen in das JFormattedTextField gesetzt werden
// also dd.
}
if(doc.getLength() == 5) {
// jetzt sollte ein Punkt als 6. Zeichen in das JFormattedTextField gesetzt werden
// also dd.mm.
}
}
public void removeUpdate(DocumentEvent e) {
}
public void changedUpdate(DocumentEvent e) {
}
}
}