title: Adding a background image to a JFrame using Swing
body: <p>Hello i have been following multiple guides on how to add a background image to a JFrame. However when run my program, the background turns out with only a bit of the background image showing in the bottom left and bottom sides.</p>
  
  <p>Here is my current code:</p>
  
  <pre><code>private int width = 1280;
  private int height = 720;
  
  private String title = "Creation - " + Component.versionID + " Launcher";
  
  private JPanel window = new JPanel();
  private JFrame frame = new JFrame();
  private JLabel name, version;
  
  
  private JButton play, options, changelog, quit;
  private Rectangle rPlay, rOptions, rChangelog, rQuit, rName, rVersion;
  private int buttonWidth = 200;
  private int buttonHeight = 80;
  
  public Menu (Component component) {
      frame.setTitle(title);
      frame.setSize(new Dimension(width, height));
      frame.setDefaultCloseOperation(EXIT_ON_CLOSE);
      frame.add(component);
      frame.getContentPane().add(window);
      frame.setResizable(false);
      frame.setLocationRelativeTo(null);
      frame.setVisible(true);
      frame.setIconImage(new ImageIcon("res/icon.png").getImage());
  
      setLayout(new BorderLayout());
      JLabel background = new JLabel(new ImageIcon("res/background.png"));
      frame.add(background);
      background.setLayout(new FlowLayout());
  
      window.setLayout(null);
      drawButtons();
      frame.repaint();
      frame.pack();
  }
  
  private void drawButtons() {
  
      name = new JLabel("Creation");
      rName = new Rectangle((width/2) - (buttonWidth/2) + 60, 20, buttonWidth, buttonHeight);
      name.setBounds(rName);
      window.add(name);
  
      play = new JButton("Play");
      rPlay = new Rectangle((width/2) - (buttonWidth/2), 250, buttonWidth, buttonHeight);
      play.setBounds(rPlay);
      window.add(play);
  
      options = new JButton("Options");
      rOptions = new Rectangle((width/2) - (buttonWidth/2), 350, buttonWidth, buttonHeight);
      options.setBounds(rOptions);
      window.add(options);
  
      changelog = new JButton("View change-log");
      rChangelog = new Rectangle((width/2) - (buttonWidth/2), 450, buttonWidth, buttonHeight);
      changelog.setBounds(rChangelog);
      window.add(changelog);
  
      quit = new JButton("Quit");
      rQuit = new Rectangle((width/2) - (buttonWidth/2), 550, buttonWidth, buttonHeight);
      quit.setBounds(rQuit);
      window.add(quit);
  
      play.addActionListener(new ActionListener() {
          public void actionPerformed(ActionEvent e) {
              Component component = new Component();
              frame.dispose();
              component.start();
          }
      });
      options.addActionListener(new ActionListener() {
          public void actionPerformed(ActionEvent e) {
  
          }
      });
      changelog.addActionListener(new ActionListener() {
          public void actionPerformed(ActionEvent e) {
  
          }
      });
      quit.addActionListener(new ActionListener() {
          public void actionPerformed(ActionEvent e) {        
              System.exit(0);
          }
      });
  }
  </code></pre>
  
  <p>(As you can see) my JFrame size is 1280x720. This is the same size as the background image, so I don't see any issues. If anyone could help me edit my code or give me pointers, I am simply looking for the background image to display behind the buttons.</p>