En yeni Java 9 erken erişim sürümünü indirip yükledim ve Windows'ta bir Java Swing uygulamasının bileşenleri şimdi doğru boyutta oluşturduğunu bulmaktan çok memnun oldum. Artık HiDPI ekranlı müşterilerim, uygulamamı istenen genişlik ve yükseklikte kullanmak zorunda kalmıyor.Java 9, HiDPI ekranında daha yüksek çözünürlüklü görüntüler nasıl kullanılır?
Ancak, Swing uygulamasında kendi simgelerin sadece genişlik ve yüksekliği ikiye katlamak için ölçeklendirildiklerini fark ettim;
Normal boyutta (örn. Foobar.png) ve çift genişlik/yükseklikte (örn. [email protected]) tüm simgelerin tam bir kümesine sahibim. Apple adlandırma kurallarını kullanıyorum.
Java 9'u el ile kodlamak zorunda kalmadan, görüntünün yüksek çözünürlüklü sürümünü kolayca bulmak ve kullanmak için nasıl kullanabilirim?
Bir kod örneği her zaman bir soru daha netleştirir, bu nedenle aşağıdaki kodun derlenmesini ve çalıştırılmasını sağlamak için kullanabileceğim bir çoklu çözünürlüklü simge sınıfına sahip Java 9 var mı?
import javax.swing.*;
public class ScratchSpace {
public static void main(String[] args) throws Exception {
UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());
SwingUtilities.invokeLater(() -> {
JFrame frame = new JFrame("I work in HiDPI!");
// can I replace the following line with some magical new method that automatically loads the same icon at multiple resolutions
// so that Swing chooses the correct one when rendering, depending on the current scale of the current display?
Icon icon = new IconWithMultipleSizes("foobar.png");
JLabel label = new JLabel("I'm a label with an icon.", icon, SwingConstants.LEFT);
frame.setContentPane(label);
frame.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
frame.pack();
frame.setLocationRelativeTo(null);
frame.setVisible(true);
});
}
}
Sanırım böyle bir sınıf olmalı, ancak bulamıyorum.
Şimdiye kadar Java 9'da java.awt.image.MultiResolutionImage adlı bir sınıf buldum. Hala işe nasıl başlayacağımıza dair bilgi arıyorum. –