Differences
This shows you the differences between two versions of the page.
| Both sides previous revision
Previous revision
|
|
swing:icons [2018/03/22 08:35] gthanos [Εικόνες (ImageIcons)] |
swing:icons [2018/03/27 19:36] |
| ====== Εικόνες - Η κλάση ImageIcon ====== | |
| |
| Η κλάση που υποστηρίζει εικόνες στο //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]] | |
| |
| <code java> | |
| ImageIcon icon = new ImageIcon("images/middle.gif", | |
| "a pretty but meaningless splat"); | |
| | |
| JLabel label1 = new JLabel("Image and Text", icon, JLabel.LEFT); | |
| </code> | |
| |
| ===== Μεταβάλλοντας το μέγεθος μιας εικόνας ===== | |
| |
| Αν θέλετε να αλλάξετε τις διαστάσεις μιας εικόνας πριν την τοποθετήσετε μέσα στο //JComponent// της επιλογής σας μπορείτε να το κάνετε, αλλά όχι με χρήση της κλάσης ImageIcon. Ο πιο απλός τρόπος είναι να χρησιμοποιήσετε την κλάσης [[http://docs.oracle.com/javase/7/docs/api/java/awt/Image.html|java.awt.Image]] η οποία προσφέρει και δυνατότητα μεταβολής του μεγέθους της εικόνας. Ένας τρόπος για να το κάνετε είναι ο παρακάτω κώδικας. | |
| <code java> | |
| 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); | |
| </code> | |
| Οι επιλογές που έχετε αναφορικά με την τελευταία παράμετρο της μεθόδου ''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. | |
| |
| |
| |