vagg77 Δημοσ. 14 Αυγούστου 2014 Δημοσ. 14 Αυγούστου 2014 Προσπαθω να περιορισω τον αριθμο των χαρακτηρων σε ενα JTextField στην Java αλλα δεν δουλευει ο κωδικας. Εχετε καμια ιδεα? Κλαση JTextFieldClass για τον περιορισμο των χαρακτηρων. import javax.print.attribute.AttributeSet; import javax.swing.text.BadLocationException; import javax.swing.text.PlainDocument; public class JTextFieldClass extends PlainDocument { private int limit; JTextFieldClass(int limit) { super(); this.limit = limit; } public void insertString( int offset, String str, AttributeSet attr ) throws BadLocationException { if (str == null) return; if ((getLength() + str.length()) <= limit) { super.insertString(offset, str, (javax.swing.text.AttributeSet) attr); } } } Κλαση Application public class Application{ public static void main(String[] args) { EventQueue.invokeLater(new Runnable() { public void run() { try { Application window = new Application(); window.frame.setVisible(true); } catch (Exception e) { e.printStackTrace();} } } );} public Application() { initialize(); } private void initialize() { frame = new JFrame(); frame.setBounds(100, 100, 805, 300); frame.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE); frame.getContentPane().setLayout(null); name = new JTextField(12); name.setDocument(new JTextFieldClass(10)); name.setBounds(183, 84, 122, 20); frame.getContentPane().add(name); name.setColumns(10); } } Τον κωδικα τον βρηκα στο StackOverflow αλλα δεν δουλευει(http://stackoverflow.com/questions/3519151/how-to-limit-the-number-of-characters-in-jtextfield)
Xvipes Δημοσ. 14 Αυγούστου 2014 Δημοσ. 14 Αυγούστου 2014 import javax.swing.JFrame; import javax.swing.JTextField; import javax.swing.text.AttributeSet; import javax.swing.text.BadLocationException; import javax.swing.text.Document; import javax.swing.text.PlainDocument; public class JTextFieldLimit extends JTextField { private static int limit; public JTextFieldLimit(int limit) { setLimit(limit); } public int getLimit() { return limit; } public void setLimit(int limit) { this.limit = limit; } protected Document createDefaultModel() { return new LimitedLengthDocument(); } static class LimitedLengthDocument extends PlainDocument { public void insertString(int offs, String str, AttributeSet a) throws BadLocationException { if( str == null ) return; if( (getLength() + str.length()) <= limit ) super.insertString(offs, str, a); } } } Και μετά αρχικοποιείς JTextFieldLimit textField = new JTextFieldLimit(16); (για 16 χαρακτήρες limit) 1
Προτεινόμενες αναρτήσεις
Δημιουργήστε ένα λογαριασμό ή συνδεθείτε για να σχολιάσετε
Πρέπει να είστε μέλος για να αφήσετε σχόλιο
Δημιουργία λογαριασμού
Εγγραφείτε με νέο λογαριασμό στην κοινότητα μας. Είναι πανεύκολο!
Δημιουργία νέου λογαριασμούΣύνδεση
Έχετε ήδη λογαριασμό; Συνδεθείτε εδώ.
Συνδεθείτε τώρα