JComponents가 그림 배경과 함께 표시되지 않음
JComponents가 배경 이미지에 비해 보이지 않는 문제에 직면해 있습니다. 이는 이미지 렌더링에 JPanel 및 JLabel을 잘못 사용했기 때문일 수 있습니다.
이미지 렌더링에 JPanel 사용
코드에서 a JPanel:
mainp.add(picLabel, c);
올바른 것처럼 보이지만 이미지 자체가 아닌 이미지 자체만 그릴 수 있습니다. 구성 요소. 배경 이미지도 유지하면서 구성 요소를 표시하려면 다음과 같이 사용자 정의 JPanel에 직접 그려야 합니다.
public class CustomJPanel extends JPanel { private BufferedImage image; public CustomJPanel(BufferedImage image) { this.image = image; } @Override public Dimension getPreferredSize() { return (new Dimension(image.getWidth(), image.getHeight())); } @Override protected void paintComponent(Graphics g) { super.paintComponent(g); g.drawImage(image, 0, 0, this); } }
그런 다음 이 사용자 정의 JPanel에 구성 요소를 추가할 수 있습니다.
CustomJPanel customPanel = new CustomJPanel(ImageIO.read(new File("bgd.png"))); mainp.add(customPanel);
이미지 렌더링에 JLabel 사용
또는 이미지 렌더링을 위해 JLabel을 사용할 수 있습니다. 그러나 구성 요소를 올바르게 표시하려면 불투명 속성을 true로 설정해야 합니다.
JLabel picLabel = new JLabel(new ImageIcon(ImageIO.read(new File("bgd.png")))); picLabel.setOpaque(true); mainp.add(picLabel);
기본 JPanel에 구성 요소를 계속 추가해야 합니다.
c.gridx = 0; c.gridy = 1; gusername = new JTextField(); picLabel.add(gusername, c);
다음 단계를 수행하세요. 을 사용하면 사용자 정의 JPanel을 사용하든 JLabel을 올바르게 구성하든 JComponent가 배경 이미지에 표시되는지 확인할 수 있습니다.
위 내용은 Java에서 배경 이미지를 사용할 때 내 JComponent가 보이지 않는 이유는 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!