Ich bin neu in Swing Java-Entwicklung. Kann mir jemand dabei helfen?Swing - MaskFormatter - Zahlen von der rechten Seite des Textfelds eingeben
Ich habe ein jformattedtextfield mit Maskenformatierung. es funktioniert gut. Aber ich möchte nur wissen, ob wir es schaffen können, die Zahlen von rechts einzugeben. Der folgende Code funktioniert gut, um die Zahlen von links nach rechts einzugeben.
Vielen Dank für Ihre Zeit.
Hier ist die Java-Code ich habe:
public class MaskFormattedTextExample extends JFrame {
private static final long serialVersionUID = -1212313123;
JFormattedTextField timeField;
public MaskFormattedTextExample() {
initComponents();
}
private void initComponents() {
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setSize(new Dimension(200, 200));
getContentPane().setLayout(new FlowLayout(FlowLayout.LEFT));
MaskFormatter mask = null;
try {
mask = new MaskFormatter("##:##:##");
mask.setPlaceholderCharacter('_');
} catch (ParseException e) {
e.printStackTrace();
}
timeField = new JFormattedTextField(mask);
timeField.setHorizontalAlignment(JTextField.RIGHT);
timeField.setCaretPosition(JTextField.RIGHT);
getContentPane().add(timeField);
}
public static void main(String[] args) {
SwingUtilities.invokeLater(new Runnable() {
public void run() {
new MaskFormattedTextExample().setVisible(true);
}
});
}
}
Haben Sie die versucht, [ 'setComponentOrientation (ComponentOrientation o)'] (http://docs.oracle .com/javase/1.4.2/docs/api/javax/swing/JSpinner.html) Methode? – fireshadow52
['Component.setComponentOrientation (ComponentOrientation)'] (http://docs.oracle.com/javase/6/docs/api/java/awt/Component.html#setComponentOrientation%28java.awt.ComponentOrientation%29) FTFY @ fireshadow52 :) – Brian
Danke Brian und feuershadow52. Es funktioniert gut. Aber ich sehe ein kleines Problem. Die Caret-Position ist ein wenig verwirrend. Ich erwarte die Caret-Position am Ende immer zu sehen. Stattdessen zeigt es am Anfang. Auch habe ich beobachtet, dass das Zahlenformat, nachdem ich 3 Ziffern 149 eingegeben habe (ich erwarte, dass als 1:49 zu sehen, aber stattdessen es es als 14: 9 zeige) – Steve