여기에 코드가 있습니다. 이미지를 배경 위에 올려 놓았을 때 코드를 옮길 때 어떤 코드가 추가 되더라도 왼쪽 벽에 붙어있을뿐입니다. 나는 setLocation과 setBounds를 시도했다. 내가하고 싶은 일은 이미지를 왼쪽 하단으로 이동하는 것입니다. 프레임의 벽면으로 완전히 이동하지는 않습니다. 두 번째 문은 당신이 "배경"구성 요소에 대한 설정 어떤 레이아웃 매니저가 될 레이아웃 매니저로, 프레임의 컨텐츠 구획을 바꾸기 때문에붙어 있고 움직이지 않는 JLabel을 어떻게 이동합니까?
JFrame window = new JFrame();
window.setSize(800,480);
window.setTitle("Battle");
window.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
window.setLayout(new BorderLayout());
JLabel background = new JLabel();
ImageIcon icon = new ImageIcon("background2.png");
background.setIcon(icon);
background.setLayout(new BorderLayout());
window.setContentPane(background);
JLabel p1 = new JLabel();
p1 = a.getImage();
background.add(p1);
p1.setLocation(500,500);
p1.setVisible(true);
window.setVisible(true);
의 BorderLayout이 일을하고있다. BorderLayout은 레이아웃 관리자와 마찬가지로 자식 구성 요소가 배치되는 위치를 결정하므로 setLocation에 대한 호출은 아무런 의미가 없습니다. [GridBagLayout] (http://docs.oracle.com/javase/8/docs/api/java/awt/GridBagLayout.html)을 사용하는 방법을 배워야하지만, LayoutManagers는 일반적으로 작동합니다.] (https://docs.oracle.com/javase/tutorial/uiswing/layout/). – VGR