자바 JPanel에 이미지를 넣어줬더니 버튼이 안 보일 때

조회수 2053회

자바로 GUI 를 이용해서 프로그램을 짜고 있는데 Panel에 이미지를 삽입해주었더니 버튼이 맨 처음 실행시켰을 때는 안보이다가 마우스를 버튼쪽에 갖다 대면 그제서야 나타나게 됩니다. 혹시 이 문제 해결법 아시는 분 있나요?ㅠㅠ

import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JMenuBar;
import javax.swing.JMenu;
import javax.swing.JMenuItem;
import java.awt.event.ActionListener;
import java.awt.event.ActionEvent;
import javax.swing.JLabel;
import java.awt.Color;

import javax.swing.ImageIcon;
import javax.swing.JButton;
import javax.swing.SwingConstants;
import java.awt.SystemColor;
import java.awt.Font;
import java.awt.Graphics;
import java.awt.Image;

public class TourGuideTalk extends JFrame{
    static JPanel page1 = new JPanel() {
        ImageIcon background = new ImageIcon("C:\\Users\\user\\Desktop\\Backgrounds\\page1.PNG");
        public void paint(Graphics g) {
            g.drawImage(background.getImage(), 0, 0, null);
        }
    };
    static JPanel page2 = new JPanel() {
        ImageIcon background = new ImageIcon("C:\\Users\\user\\Desktop\\Backgrounds\\page2.PNG");
        public void paint(Graphics g) {
            g.drawImage(background.getImage(), 0, 0, null);
        }
    };
    static JButton startButton = new JButton("Start!");
    static JMenuBar menuBar = new JMenuBar();
    static JMenu FileMenu = new JMenu("File");
    static JMenuItem ExitMenu = new JMenuItem("Exit");
    public TourGuideTalk() {
        MainFrame();
        setpanel();
    }
    public void MainFrame() {
        setTitle("Tour Guide Talk");
        setSize(800, 500);
        setResizable(false);
        setLocationRelativeTo(null);
        getContentPane().setLayout(null);
        setVisible(true);
        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        menuBar.setBackground(SystemColor.menu);
        setJMenuBar(menuBar);
        FileMenu.setBackground(SystemColor.menu);
        menuBar.add(FileMenu);
        ExitMenu.addActionListener(new ActionListener() {
            public void actionPerformed(ActionEvent e) {
                System.exit(0);
            }
        });
        FileMenu.add(ExitMenu);
    }
    public void setpanel() {
        startButton.addActionListener(new ActionListener() {
            public void actionPerformed(ActionEvent e) {
                page1.setVisible(false);
                page2.setVisible(true);
            }
        });
        startButton.setBounds(350, 345, 100, 50);
        page1.setBounds(0, 0, 794, 439);
        page2.setBounds(0, 0, 794, 439);
        page1.setLayout(null);
        page2.setLayout(null);
        page1.setVisible(true);
        page2.setVisible(false);
        getContentPane().add(page1);
        getContentPane().add(page2);
        page1.add(startButton);
    }
    public static void main(String[] args) {
        new TourGuideTalk();
    }
}
  • (•́ ✖ •̀)
    알 수 없는 사용자

답변을 하려면 로그인이 필요합니다.

프로그래머스 커뮤니티는 개발자들을 위한 Q&A 서비스입니다. 로그인해야 답변을 작성하실 수 있습니다.

(ಠ_ಠ)
(ಠ‿ಠ)