This shows you the differences between two versions of the page.
| Both sides previous revision Previous revision Next revision | Previous revision | ||
|
swing:text_fields [2018/03/27 16:31] gthanos |
swing:text_fields [2018/03/27 19:40] |
||
|---|---|---|---|
| Line 1: | Line 1: | ||
| - | ====== Text Fields, Text Areas ====== | ||
| - | |||
| - | <WRAP info 70% round center> | ||
| - | Σε αυτή την ενότητα θα εξετάσουμε τα πεδία κειμένου text field και text area στο οποία το περιεχόμενο κείμενο έχει ενιαία μορφοποίηση, | ||
| - | </ | ||
| - | |||
| - | Ένα text field (υλοποιείται από την κλάση [[http:// | ||
| - | |||
| - | <code java> | ||
| - | int NUMBER_OF_CHAR = 20; | ||
| - | JTextField textField = new JTextField(NUMBER_OF_CHAR); | ||
| - | or | ||
| - | JTextField textField = new JTextField(" | ||
| - | </ | ||
| - | |||
| - | Οι παραπάνω ορισμοί σημαίνουν τα εξής: | ||
| - | - Δημιουργούμε ένα text field στο οποίο θα πρέπει να είναι ορατοί τουλάχιστον 20 χαρακτήρες (μπορεί να είναι και περισσότεροι). | ||
| - | - Ο 2ος κατασκευαστής δημιουργεί το παραπάνω text field που περιέχει το String **" | ||
| - | |||
| - | Εκτός του component JTextField υπάρχει και το component [[http:// | ||
| - | |||
| - | Σε αναλογία με το text field, ένα text area (υλοποιείται από την κλάση [[http:// | ||
| - | |||
| - | <code java> | ||
| - | int NUMBER_OF_CHAR = 20; | ||
| - | int NUMBER_OF_ROWS = 5; | ||
| - | JTextArea textArea = new JTextArea(NUMBER_OF_ROWS, | ||
| - | OR | ||
| - | JTextArea textArea = new JTextArea(" | ||
| - | </ | ||
| - | |||
| - | <WRAP tip 80% center round > | ||
| - | Τόσο η κλάση **JTextArea** όσο και η κλάση **JTextField** είναι απόγονοι της κλάσης [[http:// | ||
| - | </ | ||
| - | |||
| - | ===== Μέθοδοι που κληρονομούνται από την κλάση JTextComponent ===== | ||
| - | |||
| - | ==== set/get text content ==== | ||
| - | |||
| - | Μπορείτε να λάβετε ή να θέσετε το περιεχόμενο ενός text field ή text area μέσα από τις μεθόδους '' | ||
| - | <code java> | ||
| - | String text = textField.getText(); | ||
| - | textField.setText(text + " | ||
| - | </ | ||
| - | |||
| - | Εάν θέλετε να λάβετε το κείμενο που έχει πιθανόν μαρκάρει ο χρήστης μπορείτε να χρησιμοποιήσετε την μέθοδο | ||
| - | <code java> | ||
| - | public String getSelectedText(); | ||
| - | </ | ||
| - | |||
| - | ==== Editable or Non-editable field ==== | ||
| - | |||
| - | Μπορείτε να ορίσετε ένα text component να είναι non-editable ως εξής: | ||
| - | <code java> | ||
| - | textArea.setEditable(false); | ||
| - | textArea.setEditable(true); | ||
| - | </ | ||
| - | |||
| - | ==== Λάβετε την θέση του κέρσορα ή θέστε την θέση αυτή ==== | ||
| - | |||
| - | <code java> | ||
| - | int pos = textArea.getCaretPosition(); | ||
| - | textArea.setCaretPosition(textArea.getText().length()-10);// | ||
| - | </ | ||
| - | |||
| - | ==== Μαρκάρετε περιεχόμενο ==== | ||
| - | |||
| - | <code java> | ||
| - | //sets caret position 10 characters before the end. | ||
| - | textArea.setCaretPosition(textArea.getText().length()-10); | ||
| - | //sets caret position 10 characters by 10 characters from its current position. | ||
| - | textArea.moveCaretPosition(10); | ||
| - | |||
| - | OR | ||
| - | |||
| - | //marks the last 10 characters of textArea. | ||
| - | textArea.select(textArea.getText().length()-10, | ||
| - | </ | ||
| - | |||
| - | ==== Αλλάξτε το χρώμα των χαρακτήρων ή το χρώμα στο background ==== | ||
| - | |||
| - | Η αλλαγή στο χρώμα των χαρακτήρων μπορεί να γίνει μέσα από την μέθοδο '' | ||
| - | <code java> | ||
| - | textArea.setForeground(Color.RED); | ||
| - | </ | ||
| - | |||
| - | Αντίστοιχα, | ||
| - | <code java> | ||
| - | textArea.setBackground(Color.BLUE); | ||
| - | </ | ||
| - | |||
| - | ===== Μέθοδοι των κλάσεων JTextField και JTextArea ===== | ||
| - | |||
| - | Είναι πιθανό σε ένα text field ή text area να θέλετε να ορίσετε την δική σας γραμματοσειρά. Αυτό μπορείτε να το κάνετε με την βοήθεια της κλάσης [[http:// | ||
| - | |||
| - | <code java> | ||
| - | void setFont(Font f); | ||
| - | </ | ||
| - | |||
| - | ==== Line Wrap σε text area ==== | ||
| - | |||
| - | Σας δίνεται η δυνατότητα να ορίσετε σε ένα text area να αναδιπλώνει τις γραμμές του περιεχομένου προσαρμοζόμενο στο μέγεθος διαθέσιμων στηλών. Η default συμπεριφορά του text area είναι να μην κάνει αναδίπλωση γραμμών. Εάν δεν γίνεται αναδίπλωση, | ||
| - | <code java> | ||
| - | textArea.setLineWrap(true); | ||
| - | textArea.setWrapStyleWord(true); | ||
| - | </ | ||
| - | |||
| - | ===== Document Listeners ===== | ||
| - | |||
| - | Κάθε component ή κάθε κατηγορία component συνδέεται με κάποιο Listener Interface. Τα παραπάνω text related components συνδέονται με το interface [[http:// | ||
| - | <code java> | ||
| - | void changedUpdate(DocumentEvent e); | ||
| - | //Gives notification that an attribute or set of attributes changed. | ||
| - | |||
| - | void insertUpdate(DocumentEvent e); | ||
| - | //Gives notification that there was an insert into the document. | ||
| - | |||
| - | void removeUpdate(DocumentEvent e); | ||
| - | //Gives notification that a portion of the document has been removed. | ||
| - | </ | ||
| - | |||
| - | |||