====== Εικόνες (ImageIcons) ====== Η κλάση που υποστηρίζει εικόνες στο //Swing// είναι η κλάση [[http://docs.oracle.com/javase/7/docs/api/javax/swing/ImageIcon.html|ImageIcon]] η οποία επιτρέπει την δημιουργία μιας εικόνας που μπορείτε να την χρησιμοποιήσετε στην συνέχεια σε κάποια αντικείμενο των κλάσεων [[http://docs.oracle.com/javase/7/docs/api/javax/swing/JLabel.html|JLabel]] ή [[http://docs.oracle.com/javase/7/docs/api/javax/swing/JButton.html|JButton]], όπως το παρακάτω παράδειγμα με χρήση της κλάσης [[swing:labels|JLabel]] ImageIcon icon = new ImageIcon("images/middle.gif", "a pretty but meaningless splat"); JLabel label1 = new JLabel("Image and Text", icon, JLabel.LEFT); ===== Μεταβάλλοντας το μέγεθος μιας εικόνας ===== Αν θέλετε να αλλάξετε τις διαστάσεις μιας εικόνας πριν την τοποθετήσετε μέσα στο //JComponent// της επιλογής σας μπορείτε να το κάνετε, αλλά όχι με χρήση της κλάσης ImageIcon. Ο πιο απλός τρόπος είναι να χρησιμοποιήσετε την κλάσης [[http://docs.oracle.com/javase/7/docs/api/java/awt/Image.html|java.awt.Image]] η οποία προσφέρει και δυνατότητα μεταβολής του μεγέθους της εικόνας. Ένας τρόπος για να το κάνετε είναι ο παρακάτω κώδικας. ImageIcon icon = new ImageIcon("images/middle.gif", "a pretty but meaningless splat"); Image image = icon.getImage().getScaledInstance(newWidth, newHeight, Image.SCALE_DEFAULT); icon = new ImageIcon(image); Οι επιλογές που έχετε αναφορικά με την τελευταία παράμετρο της μεθόδου ''getScaledInstance'' είναι οι παρακάτω. * **Image.SCALE_DEFAULT:** Use the default image-scaling algorithm. * **Image.SCALE_FAST:** Choose an image-scaling algorithm that gives higher priority to scaling speed than smoothness of the scaled image. * **Image.SCALE_SMOOTH:** Choose an image-scaling algorithm that gives higher priority to image smoothness than scaling speed. * **Image.SCALE_AREA_AVERAGING:** Use the Area Averaging image scaling algorithm.