Как добавить кнопку сверху изображения в заданные координаты? (java)

Пытаюсь поставить JButton сверху на изображение в указанные координаты. Но если выбрать .setLayout(null) то кнопки нет вообще, а если FlowLayout или GridLayout, то кнопка находится вверху в центре. Уже всяко измучился, ничего не выходит... Исходный код:

import javax.swing.*;
import java.awt.*;
import java.awt.event.MouseEvent;
import java.awt.event.MouseListener;
import java.awt.event.MouseMotionListener;

class ThisWaterLocList {//Класс описывает окно выбора конкретной локации
    JFrame locListFrame;
    YurbassFishing yf = new YurbassFishing();
    int mouseClicX;
    int mouseClicY;
    ThisWaterLocList(){
        yf.menu.setVisible(false);
        locListFrame = new JFrame();
        locListFrame.setSize(800,600);
        locListFrame.setDefaultCloseOperation(WindowConstants.DO_NOTHING_ON_CLOSE);
        locListFrame.setResizable(false);
        locListFrame.setLocationRelativeTo(null);
        locListFrame.add(new LocPanel());
        locListFrame.setUndecorated(true);
        locListFrame.addMouseListener(new MouseListener() {
            @Override
            public void mouseClicked(MouseEvent mouseEvent) {
                mouseClicX = mouseEvent.getX();
                mouseClicY = mouseEvent.getY();
                if (mouseEvent.getX()>80&&mouseEvent.getX()<220&&mouseEvent.getY()>560&&mouseEvent.getY()<580){
                    yf.menu.setVisible(true);
                    locListFrame.setVisible(false);
                    locListFrame.dispose();
                }
                locListFrame.repaint();
            }

            @Override
            public void mousePressed(MouseEvent mouseEvent) {

            }

            @Override
            public void mouseReleased(MouseEvent mouseEvent) {

            }

            @Override
            public void mouseEntered(MouseEvent mouseEvent) {

            }

            @Override
            public void mouseExited(MouseEvent mouseEvent) {

            }
        });

        locListFrame.setVisible(true);
    }
    class LocPanel extends JPanel{
        JPanel locPanel = new JPanel();
        Image background = new ImageIcon("src\\\\Image\\\\interface\\\\mapsmall background.jpg").getImage();
        Image locMap = new ImageIcon(imgPath(UserList.users[YurbassFishing.userSelect].baseNow)).getImage();
        Image globus = new ImageIcon("src\\\\Image\\\\interface\\\\globus.gif").getImage();
        Image locButton = new ImageIcon("src\\\\Image\\\\interface\\\\locbutton.gif").getImage();
        public void paint(Graphics g){
            g = (Graphics2D)g;
            g.drawImage(background, 0,0, null);
            g.setFont(new Font("TimesRoman", Font.PLAIN, 14));
            g.drawString("Главное меню", 80, 580);
            g.drawImage(locMap,75,60,null);
            g.drawImage(globus, 185,560, null);
            g.setFont(new Font("TimesRoman", Font.BOLD, 14));
            g.drawString(UserList.users[YurbassFishing.userSelect].baseNow, 390, 40);
            locPanel.setLayout(new GridLayout(10,10));
            //locPanel.setOpaque(false);
            add(locPanel);
            JButton loc = new JButton(new ImageIcon("src\\Image\\interface\\locbutton.gif"));
            loc.setBounds(200,200, 50,50);
            locPanel.add(loc);
            /*for (int i =0; i<BaseList.baseList.length; i++){
                if (BaseList.baseList[i].name.equals(UserList.users[YurbassFishing.userSelect].baseNow)){
                    for (int j =0; j<BaseList.baseList[i].locationsList.length; j++){
                        g.drawImage(locButton, BaseList.baseList[i].locationsList[0].x, BaseList.baseList[i].locationsList[0].y, null);
                        JButton loc = new JButton(new ImageIcon("src\\Image\\interface\\locbutton.gif"));
                        loc.setBounds(BaseList.baseList[i].locationsList[0].x, BaseList.baseList[i].locationsList[0].y, 50,50);
                        locPanel.add(loc);
                        locPanel.repaint();
                    }
                }
            }*/
        }
    }
    public static void main(String[]args){
        SwingUtilities.invokeLater(new Runnable() {
            @Override
            public void run() {
                new ThisWaterLocList();
            }
        });
    }
}

Ответы (0 шт):