Saiz Semula Imej Automatik pada JLabel
Apabila memaparkan imej pada JPanel menggunakan JLabel, ia selalunya dikehendaki melaraskan saiz imej secara automatik agar sesuai dengan dimensi label. Secara lalai, JLabel akan mengekalkan nisbah bidang imej asal dan menskalakannya agar muat dalam ruang label yang tersedia.
Untuk mencapai saiz semula imej automatik, satu pendekatan ialah menggunakan komponen tersuai yang memanjangkan JPanel dan mengendalikan skala rendering imej. Ini membolehkan lebih kawalan ke atas gelagat penskalaan, seperti menentukan sama ada untuk memuatkan atau mengisi imej dalam label.
Pilihan Mengubah Saiz
Terdapat dua pilihan mengubah saiz utama tersedia untuk imej pada JLabel:
Komponen Tersuai untuk Imej Boleh Resizable
Yang berikut kod mempamerkan komponen tersuai, ScalablePane, yang mengurus penskalaan imej berdasarkan pilihan muat/isi:
public class ScalablePane extends JPanel { // ... (code omitted for brevity) @Override protected void paintComponent(Graphics g) { // Draw the scaled image super.paintComponent(g); if (scaled != null) { g.drawImage(scaled, x, y, this); } else if (master != null) { g.drawImage(master, x, y, this); } } // ... (code omitted for brevity) }
Contoh Penggunaan
Untuk menggunakan komponen ScalablePane, anda boleh instantiate dan set imej yang diingini:
ScalablePane scalablePane = new ScalablePane(image); // Set the fit/fill option scalablePane.setToFit(true); // Fit image within the component // Add the component to your JPanel yourJPanel.add(scalablePane);
Atas ialah kandungan terperinci Bagaimana untuk Mengubah Saiz Imej Secara Automatik dalam JLabel?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!