User Tools

Site Tools


swing:lists

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
swing:lists [2015/05/18 06:58] gthanosswing:lists [Unknown date] (current) – external edit (Unknown date) 127.0.0.1
Line 3: Line 3:
 Μία λίστα αποτελείται από μία σειρά επιλογών τις οποίες μπορείτε να παραθέσετε σε μία ή περισσότερες γραμμές ή στήλες. Η λίστα υλοποιείται από την κλάση [[http://docs.oracle.com/javase/7/docs/api/javax/swing/JList.html|javax.swing.JList]].  Μία λίστα αποτελείται από μία σειρά επιλογών τις οποίες μπορείτε να παραθέσετε σε μία ή περισσότερες γραμμές ή στήλες. Η λίστα υλοποιείται από την κλάση [[http://docs.oracle.com/javase/7/docs/api/javax/swing/JList.html|javax.swing.JList]]. 
  
-Για την δημιουργία μίας λίστας είναι απαραίτητη η δημιουργία ενός αντικειμένου τύπου [[https://docs.oracle.com/javase/8/docs/api/javax/swing/ListModel.html|javax.swing.ListModel]], το οποίο αποθηκεύει τα δεδομένα που θα εμφανιστούν στην λίστα. Η Java παρέχει την default υλοποίηση [[https://docs.oracle.com/javase/8/docs/api/javax/swing/DefaultListModel.html|DefaultListModel]] η οποία είναι ικανοποιητική για την διαχείριση των δεδομένων της λίστας+Για την δημιουργία μίας λίστας είναι απαραίτητη η δημιουργία ενός αντικειμένου τύπου [[https://docs.oracle.com/javase/8/docs/api/javax/swing/ListModel.html|javax.swing.ListModel]], το οποίο αποθηκεύει τα δεδομένα που θα εμφανιστούν στην λίστα. Η Java παρέχει την default υλοποίηση [[https://docs.oracle.com/javase/8/docs/api/javax/swing/DefaultListModel.html|DefaultListModel]] για την διαχείριση των δεδομένων που περιέχει η λίστα. 
  
 Εναλλακτικά της χρήσης ενός αντικειμένου τύπου //ListModel//, μπορείτε να χρησιμοποιήσετε έναν πίνακα αντικειμένων ή ένα αντικείμενο τύπου [[http://docs.oracle.com/javase/7/docs/api/java/util/Vector.html|java.util.Vector]] (δείτε τους κατασκευαστές της κλάσης). Σε αυτή την περίπτωση η λίστα των αντικειμένων είναι σταθερή και δεν μπορεί να μεταβληθεί. Αντίθετα, η χρήση ενός αντικειμένου τύπου //ListModel// επιτρέπει την πρόσθεση ή την αφαίρεση επιλογών από την λίστα και για αυτό θεωρείται πιο πρακτική. Εναλλακτικά της χρήσης ενός αντικειμένου τύπου //ListModel//, μπορείτε να χρησιμοποιήσετε έναν πίνακα αντικειμένων ή ένα αντικείμενο τύπου [[http://docs.oracle.com/javase/7/docs/api/java/util/Vector.html|java.util.Vector]] (δείτε τους κατασκευαστές της κλάσης). Σε αυτή την περίπτωση η λίστα των αντικειμένων είναι σταθερή και δεν μπορεί να μεταβληθεί. Αντίθετα, η χρήση ενός αντικειμένου τύπου //ListModel// επιτρέπει την πρόσθεση ή την αφαίρεση επιλογών από την λίστα και για αυτό θεωρείται πιο πρακτική.
Line 19: Line 19:
  
 <WRAP tip 80% center round> <WRAP tip 80% center round>
-Η κλάση JList δεν έχει την δυνατότητα scrolling. Αν θέλετε να προσθέσετε scrolling θα πρέπει να το κάνετε δημιουργώντας ένα αντικείμενο του [[http://docs.oracle.com/javase/7/docs/api/javax/swing/JScrollPane.html|javax.swing.JScrollPane]].+Η κλάση JList δεν έχει την δυνατότητα scrolling. Αν θέλετε να προσθέσετε scrolling θα πρέπει να το κάνετε δημιουργώντας ένα αντικείμενο του [[http://docs.oracle.com/javase/7/docs/api/javax/swing/JScrollPane.html|javax.swing.JScrollPane]],  μέσα στο οποίο θα τοποθετήσετε το αντικείμενο τύπου **JList**.
 </WRAP> </WRAP>
  
 ==== Listening Interface ==== ==== Listening Interface ====
  
-Αντικείμενα του τύπου JList μπορούν να κάνουν register Listening objects του τύπου [[http://docs.oracle.com/javase/7/docs/api/javax/swing/event/ListSelectionListener.html|javax.swing.event.ListSelectionListener]]. Η βασική μέθοδος που υλοποιεί το συγκεκριμένο interface είναι η παρακάτω.+Αντικείμενα του τύπου //JList// μπορούν να κάνουν register Listening objects του τύπου [[http://docs.oracle.com/javase/7/docs/api/javax/swing/event/ListSelectionListener.html|javax.swing.event.ListSelectionListener]]. Η μοναδική μέθοδος που υλοποιεί το συγκεκριμένο //interface// είναι η παρακάτω.
 <code java> <code java>
-void  valueChanged(ListSelectionEvent e)+void valueChanged(ListSelectionEvent e)
 //Called whenever the value of the selection changes. //Called whenever the value of the selection changes.
 </code> </code>
Line 35: Line 35:
  
 <code java ListDemo.java> <code java ListDemo.java>
- 
 import java.awt.*; import java.awt.*;
 import java.awt.event.*; import java.awt.event.*;
Line 42: Line 41:
  
 /* ListDemo.java requires no other files. */ /* ListDemo.java requires no other files. */
 +@SuppressWarnings("serial")
 public class ListDemo extends JPanel public class ListDemo extends JPanel
             implements ListSelectionListener {             implements ListSelectionListener {
-  private JList list; +  private JList<String> list; 
-  private DefaultListModel listModel;+  private DefaultListModel<String> listModel;
  
   private static final String hireString = "Hire";   private static final String hireString = "Hire";
Line 55: Line 55:
     super(new BorderLayout());     super(new BorderLayout());
  
-    listModel = new DefaultListModel();+    listModel = new DefaultListModel<String>();
     listModel.addElement("Jane Doe");     listModel.addElement("Jane Doe");
     listModel.addElement("John Smith");     listModel.addElement("John Smith");
Line 61: Line 61:
  
     //Create the list and put it in a scroll pane.     //Create the list and put it in a scroll pane.
-    list = new JList(listModel);+    list = new JList<>(listModel);
     list.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);     list.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
     list.setSelectedIndex(0);     list.setSelectedIndex(0);
Line 196: Line 196:
     }     }
  
 +    /* if textField is empty returns true */
     private boolean handleEmptyTextField(DocumentEvent e) {     private boolean handleEmptyTextField(DocumentEvent e) {
       if (e.getDocument().getLength() <= 0) {       if (e.getDocument().getLength() <= 0) {
Line 253: Line 254:
 </code> </code>
  
 +| Προηγούμενο: [[:swing:jscrollpane | Scroll Panes ]] | [[:toc | Περιεχόμενα ]] | Επόμενο: [[:swing:combo_box | Η κλάση JComboBox ]] |
swing/lists.1431932332.txt.gz · Last modified: 2015/05/18 05:58 (external edit)