Soalan:
JComponents saya tidak kelihatan apabila saya menetapkan imej latar belakang. Bagaimanakah saya boleh membetulkan perkara ini?
Kod:
Lihat kod yang disediakan dalam huraian soalan.
Jawapan:
Untuk menambah imej latar belakang pada JPanel, anda boleh menggunakan yang berikut langkah:
Menggunakan JPanel Tersuai:
class CustomPanel extends JPanel { private BufferedImage image; public CustomPanel(BufferedImage image) { this.image = image; } @Override protected void paintComponent(Graphics g) { super.paintComponent(g); g.drawImage(image, 0, 0, this); } }
BufferedImage myPicture = ImageIO.read(new File("c:\bgd.png"));
CustomPanel picPanel = new CustomPanel(myPicture); window.add(picPanel, c);
Menggunakan JLabel:
JLabel picLabel = new JLabel(new ImageIcon(myPicture)); mainp.add(picLabel, c);
Pertimbangan Tambahan:
Contoh Menggunakan JPanel Tersuai:
import java.awt.*; import java.awt.image.BufferedImage; import java.io.File; import java.io.IOException; import javax.imageio.ImageIO; import javax.swing.*; public class BackgroundImageExample { public static void main(String[] args) { try { // Create the main window JFrame window = new JFrame("Window with Background Image"); window.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); window.setSize(300, 250); window.setResizable(false); // Create the background image and CustomPanel BufferedImage image = ImageIO.read(new File("path/to/background.png")); CustomPanel picPanel = new CustomPanel(image); picPanel.setOpaque(true); // Add the CustomPanel to the main window window.add(picPanel); // Show the window window.setVisible(true); } catch (IOException e) { e.printStackTrace(); } } }
Contoh Menggunakan JLabel:
import java.awt.*; import java.awt.image.BufferedImage; import java.io.File; import java.io.IOException; import javax.imageio.ImageIO; import javax.swing.*; public class BackgroundImageExample { public static void main(String[] args) { try { // Create the main window JFrame window = new JFrame("Window with Background Image"); window.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); window.setSize(300, 250); window.setResizable(false); // Create the background image and JLabel BufferedImage image = ImageIO.read(new File("path/to/background.png")); JLabel picLabel = new JLabel(new ImageIcon(image)); picLabel.setOpaque(true); // Add the JLabel to the main window window.add(picLabel); // Show the window window.setVisible(true); } catch (IOException e) { e.printStackTrace(); } } }
Dengan melaksanakan salah satu pendekatan ini, anda boleh berjaya menambahkan imej latar belakang pada JKomponen.
Atas ialah kandungan terperinci Bagaimana untuk Menambah Imej Latar Belakang pada JComponents dan Membetulkan Isu Keterlihatan?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!