Jobjects位于现有对象之上

时间:2013-05-16 09:04:12

标签: java image jframe

所以我想知道是否可以在已经存在的东西(例如JLabel)之上放置按钮,文本框,单词,进度条等等。 这是我制作的底涂框架的图像,然后是与此底涂框架相关联的代码片段。

(我没有10个声望,所以这里是照片的链接)

  

http://prntscr.com/15516f

Map.setTitle("Map");
Map.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
Map.setUndecorated(true);
Map.setBackground(new Color(0,0,0,0));
Map.setLayout(new FlowLayout());
JLabel Background = new JLabel(new ImageIcon(getClass().getResource("Map.png")));
  Background.addMouseListener(new MouseAdapter() {
    public void mousePressed(MouseEvent e) {
      initialClick = e.getPoint();
      getComponentAt(initialClick);
    }
  });
  Background.addMouseMotionListener(new MouseMotionAdapter() {
    @Override
    public void mouseDragged(MouseEvent e) {
      // get location of Window
      int thisX = Map.getLocation().x;
      int thisY = Map.getLocation().y;
      // Determine how much the mouse moved since the initial click
      int xMoved = (thisX + e.getX()) - (thisX + initialClick.x);
      int yMoved = (thisY + e.getY()) - (thisY + initialClick.y);
      // Move window to this position
      int X = thisX + xMoved;
      int Y = thisY + yMoved;
      Map.setLocation(X, Y);
    }
});
Map.add(Background);
Map.setSize(507,512);
Map.setLocation(0, 100);
Map.setResizable(false);
Map.setVisible(false);

在旁注上,我知道这是FlowLayout(),但是当我尝试添加其他内容时,它会将自己放在我的地图上方或下方。 我想知道我是否可以把这些东西放在这张地图上。 也许我应该以{{1​​}}之外的其他方式将图像放入其中?

1 个答案:

答案 0 :(得分:0)

了解JLayeredPane和类似的策略。有关详细信息,请参阅How to Use Layered Panes

enter image description here