swing:text_fields

This is an old revision of the document!


A PCRE internal error occured. This might be caused by a faulty plugin

====== Text Fields & Text Areas ====== Ένα text field (υλοποιείται από την κλάση [[http://docs.oracle.com/javase/7/docs/api/javax/swing/JTextField.html|JTextField]]) είναι ένα πεδίο κειμένου, στο οποίο ο χρήστης μπορεί να καταχωρήσει κείμενο. Το text field καταλαμβάνει μόνο μία γραμμή και εκτείνεται σε συγκεκριμένο εύρος χαρακτήρων. Το περιεχόμενο όμως που μπορεί να γραφεί μέσα στο text field μπορεί να είναι πολύ μεγαλύτερο από το εύρος χαρακτήρων το οποίο καταλαμβάνει και είναι ορατό ή μπορεί να περιέχει και κείμενο πολλών γραμμών. Ένα text field ορίζεται όπως παρακάτω <code java> int NUMBER_OF_CHAR = 20; JTextField textField = new JTextField(NUMBER_OF_CHAR); or JTextField textField = new JTextField("Default text", NUMBER_OF_CHAR); </code> Οι παραπάνω ορισμοί σημαίνουν τα εξής: - Δημιουργούμε ένα text field στο οποίο θα πρέπει να είναι ορατοί τουλάχιστον 20 χαρακτήρες (μπορεί να είναι και περισσότεροι). - Ο 2ος κατασκευαστής δημιουργεί ένα text field που περιέχει το String "Default text!". Σε αναλογία με το text field, ένα text area (υλοποιείται από την κλάση [[http://docs.oracle.com/javase/7/docs/api/javax/swing/JTextArea.html|JTextArea]]) είναι ένα text field το οποίο καταλαμβάνει πολλαπλές γραμμές. Ένα text area ορίζεται ως εξής: <code java> int NUMBER_OF_CHAR = 20; int NUMBER_OF_ROWS = 5; JTextArea = new JTextArea(NUMBER_OF_ROWS, NUMBER_OF_CHAR); OR JTextArea = new JTextArea("Default text", NUMBER_OF_ROWS, NUMBER_OF_CHAR); </code> <WRAP tip 80% center round > Τόσο η κλάση **JTextArea** όσο και η κλάση **JTextField** είναι απόγονοι της κλάσης [[http://docs.oracle.com/javase/7/docs/api/javax/swing/text/JTextComponent.html|JTextComponent]]. Κατά συνέπεια, κληρονομούν πολλές από τις μεθόδους της κλάσης **JTextComponent**. Παρακάτω θα εξετάσουμε κάποιες μεθόδους που είναι κοινές για τις παραπάνω κλάσεις καθώς προέρχονται από την κλάση **JTextComponent**. </WRAP> ===== Μέθοδοι της κλάσης JTextComponent ===== ==== set/get text content ==== Μπορείτε να λάβετε ή να θέσετε το περιεχόμενο ενός text field ή text area μέσα από τις μεθόδους ''String getText()'' και ''void setText(String text)'' όπως παρακάτω <code java> String text = textField.getText(); textField.setText(text + "!"); </code> Εάν θέλετε να λάβετε το κείμενο που έχει πιθανόν μαρκάρει ο χρήστης μπορείτε να χρησιμοποιήσετε την μέθοδο <code java> public String getSelectedText(); </code> ==== Editable or Non-editable field ==== Μπορείτε να ορίσετε ένα text component να είναι non-editable ως εξής: <code java> textArea.setEditable(false); // disable textArea for user editing. textArea.setEditable(true); // enable textArea for user editing. </code> ==== Λάβετε την θέση του κέρσορα ή θέστε την θέση αυτή ==== <code java> int pos = textArea.getCaretPosition(); textArea.setCaretPosition(textArea.getText().length()-10);//sets caret position 10 characters before the end </code> ==== Μαρκάρετε περιεχόμενο ==== <code java> textArea.setCaretPosition(textArea.getText().length()-10);//sets caret position 10 characters before the end textArea.moveCaretPosition(10); //marks the last 10 characters of textArea. OR textArea.select(textArea.getText().length()-10, textArea.getText().length()); </code>

swing/text_fields.1431187108.txt.gz · Last modified: 2016/02/26 11:15 (external edit)