Как добавить кнопку сверху изображения в заданные координаты? (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();
}
});
}
}