배경 이미지로 구성 요소가 보이지 않음
제공된 코드에서는 배경 이미지가 구성 요소를 오버레이하므로 구성 요소가 보이지 않습니다. 이 문제를 해결하려면 구성 요소를 포함하고 이미지 앞의 위치를 설정하는 JPanel을 추가해야 합니다.
import java.awt.*; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.awt.image.BufferedImage; import java.io.File; import java.io.IOException; import javax.imageio.ImageIO; import javax.swing.*; public class Login implements ActionListener { JTextField gusername; JTextField gpassword; static String username; static String password; void logini() throws IOException { JFrame window = new JFrame("Login"); window.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); window.setSize(300, 250); window.setResizable(false); window.setVisible(true); JPanel mainp = new JPanel(new GridBagLayout()); GridBagConstraints c = new GridBagConstraints(); window.add(mainp); BufferedImage myPicture = ImageIO.read(new File("c:\bgd.png")); JLabel picLabel = new JLabel(new ImageIcon(myPicture)); picLabel.setPreferredSize(new Dimension(300, 250)); mainp.add(picLabel, c); JPanel componentPanel = new JPanel(); componentPanel.setOpaque(false); c.gridx = 0; c.gridy = 1; mainp.add(componentPanel, c); c.gridx = 0; c.gridy = 1; gusername = new JTextField(); gusername.setText("Username"); componentPanel.add(gusername); c.gridx = 0; c.gridy = 2; gpassword = new JTextField(); gpassword.setText("password "); componentPanel.add(gpassword); c.gridx = 0; c.gridy = 3; JButton login = new JButton("Login"); componentPanel.add(login); login.addActionListener(this); login.setActionCommand("ok"); } public void actionPerformed(ActionEvent e) { if (e.getActionCommand().equalsIgnoreCase("ok")) { try { this.username = (gusername.getText()); this.password = (gpassword.getText()); System.out.println("0"); } catch (NumberFormatException ex) { System.out.println("ERROR: Could not preform function: 7424"); } } } }
업데이트된 코드에서는 componentPanel이라는 JPanel이 생성되어 기본 패널에 추가됩니다. 이 패널에는 입력 필드와 로그인 버튼이 포함되어 있습니다. 배경 이미지가 보이도록 불투명하게 설정되어 있습니다. 구성요소 패널의 위치는 c.gridy = 1을 사용하여 이미지 앞에 설정되어 구성요소가 배경 이미지 위에 표시되도록 합니다.
위 내용은 내 Swing 구성 요소가 배경 이미지 뒤에 숨겨져 있는 이유는 무엇이며 어떻게 해결할 수 있습니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!