2012-11-30 22 views
5

मैं जावा विकास स्विंग करने के लिए नया हूं। क्या इस बारे में कोई मेरी मदद कर सकता है।स्विंग - मास्कफॉर्मेटर - टेक्स्टफील्ड के दाईं ओर से नंबर दर्ज करें

मेरे पास मास्कफॉर्मर के साथ एक jformattedtextfield है। यह ठीक काम करता है। लेकिन केवल एक चीज जिसे मैं जानना चाहता हूं वह यह है कि अगर हम इसे सही से संख्याओं में प्रवेश करने के लिए बना सकते हैं। नीचे दिया गया कोड बाएं से दाएं संख्याओं को दर्ज करने के लिए ठीक काम करता है।

आपके समय के लिए धन्यवाद।

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); 
      } 
     }); 
    } 
} 
+0

आप की कोशिश की है [ 'setComponentOrientation (ComponentOrientation ओ)'] (http://docs.oracle

यहाँ मैं जावा कोड है .com/javase/1.4.2/डॉक्स/एपीआई/जावैक्स/स्विंग/JSpinner.html) विधि? – fireshadow52

+0

['घटक.सेट कॉम्पोनेंटऑरिएंटेशन (घटकऑनेंटेशन)'] (http://docs.oracle.com/javase/6/docs/api/java/awt/Component.html#setComponentOrientation%28java.awt.ComponentOrientation%29) एफटीएफवाई @ fireshadow52 :) – Brian

+0

धन्यवाद ब्रायन और fireshadow52। यह अच्छा काम करता है। लेकिन मुझे एक छोटी सी समस्या दिखाई देती है। देखभाल की स्थिति थोड़ा उलझन में है। मैं हर समय अंत में देखभाल की स्थिति देखने की उम्मीद करता हूं। इसके बजाय यह शुरुआत में दिखा रहा है। मैंने यह भी देखा कि 3 अंकों 14 9 दर्ज करने के बाद संख्या प्रारूप (मुझे यह देखने की उम्मीद है कि 1:49 के रूप में, लेकिन इसके बजाय यह इसे 14: 9 के रूप में दिखा रहा है) – Steve

उत्तर

4

आप इस्तेमाल कर सकते हैं:

timeField.setComponentOrientation(ComponentOrientation.RIGHT_TO_LEFT); 
+0

धन्यवाद रीमेस। यह अच्छा काम करता है। लेकिन मुझे एक छोटी सी समस्या दिखाई देती है। देखभाल की स्थिति थोड़ा उलझन में है। मैं हर समय अंत में देखभाल की स्थिति देखने की उम्मीद करता हूं। इसके बजाय यह शुरुआत में दिखा रहा है। मैंने यह भी देखा कि 3 अंकों 14 9 दर्ज करने के बाद संख्या प्रारूप (मुझे यह देखने की उम्मीद है कि 1:49 के रूप में, लेकिन इसके बजाय यह इसे 14: 9 के रूप में दिखा रहा है) – Steve

+0

यह 'JFormattedTextField' का डिफ़ॉल्ट व्यवहार है। आप [setCaretPosition] को कॉल करने पर एक नज़र डाल सकते हैं (http://docs.oracle.com/javase/7/docs/api/javax/swing/text/JTextComponent.html#setCaretPosition%28int%29) एक नए [ दस्तावेज़ लिस्टनर] (http://docs.oracle.com/javase/7/docs/api/javax/swing/event/DocumentListener.html) घटक के साथ पंजीकृत है। – Reimeus