2013-05-16 27 views
0

所以我想知道是否有可能在按钮,文本框,单词,进度条等等之类的东西上已经存在的东西,例如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(),但是当我尝试添加其他的东西,它会把它自己放在上面,或者放在我的地图下面。 我只想知道我是否可以将这些东西放在这张地图上。 也许我应该把图像以另一种方式,除了JLabel

+0

我找到了解决方案。 JLabel是一个容器,因此它可以接受一个组件。 所以,我只是补充说: 'Background.setLayout(new FlowLayout()); Background.add(objects)' 谢谢 – user2388169

+0

1)请学习常见的[Java命名约定](http://java.sun.com/docs/books/jls/second_edition/html/names.doc.html#73307 )(特别是用于名称的情况)类,方法和属性名称并一致使用它们。 2)为了更快地获得更好的帮助,请发布[SSCCE](http://sscce.org/)。 –

+0

谢谢安德鲁,这似乎更符合逻辑,然后使用标签。 – user2388169

回答