게시판 즐겨찾기
편집
드래그 앤 드롭으로
즐겨찾기 아이콘 위치 수정이 가능합니다.
자바 GUI 질문좀 드려도 될까요??
게시물ID : programmer_18673짧은주소 복사하기
작성자 : 형광젖소
추천 : 0
조회수 : 493회
댓글수 : 2개
등록시간 : 2016/10/10 17:02:57
옵션
  • 본인삭제금지
코드 요약을 하자면 이런 의도입니다;;;

1.png

panel 에다가 panel1~4까지를 add한 후
panel 하나만 출력해서 1~4 전부를 나오게 하려고 하는데요..

panel1: BorderLayout
panel2: FlowLayout
panel3: GridLayout
panel4: AbsoluteLayout -> .setLayout(null); 

다른 레이아웃인 1~3은 정상적으로 출력되나 AbsoluteLayout으로 한 4만 출력이 되질 않습니다.
구글에서도 찾아보면 panel안에 들어간 panel은 찾지 못하고 단독으로 사용되는 예만 찾을 수 있었고
주변에 물어봐도 답을 못찾고있어 답답한 마음에 질문좀 드리고싶습니다.

일단 출력결과는 이렇습니다.
11111.png


-------------------전체 코드입니다--------------------

import java.awt.*;
import javax.swing.*;

class Control extends JFrame{
public Control(){
setSize(600,200);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setTitle("Game_Control");
JPanel panel=new JPanel();
JPanel panel1=new JPanel();
JPanel panel2=new JPanel();
JPanel panel3=new JPanel();
JPanel panel4=new JPanel();
panel1.setLayout(new BorderLayout());  // panel1
JButton up,down,left,right;
up=new JButton("↑");
panel1.add(up,"North");
down=new JButton("↓");
panel1.add(down,"South");
left=new JButton("←");
panel1.add(left,"West");
right=new JButton("→");
panel1.add(right,"East");

panel2.setLayout(new FlowLayout());    // panel2
JButton select,menu,start;
select=new JButton("select");
panel2.add(select);
menu=new JButton("menu");
panel2.add(menu);
start=new JButton("start");
panel2.add(start);

panel3.setLayout(new GridLayout(2,2)); // panel3
JButton punch,kick,jump,block;
punch=new JButton("punch");
panel3.add(punch);
kick=new JButton("kick");
panel3.add(kick);
jump=new JButton("jump");
panel3.add(jump);
block=new JButton("block");
panel3.add(block);
panel4.setLayout(null); // panel4   <---출력x
JLabel coin = new JLabel("추가코인:");
JTextField maunal = new JTextField(10);
panel4.add(coin);
coin.setBounds(200, 100,60,50);
panel4.add(maunal);
maunal.setBounds(260, 115,60,20);
panel.add(panel1); // panel에 1~4 add
panel.add(panel2);
panel.add(panel3);
panel.add(panel4);
add(panel); // 1~4가 add된 panel 출력
setVisible(true);
}
}

public class ControlTest {
public static void main(String[] args) {
Control control = new Control();
}
}

-----------------------코드 끝---------------------


panel4.setLayout(null);  이후로 잘못한건가 해서
마지막에 add(panel);를 add(panel4);로 출력을 했더니 아래처럼 panel4 단독으로는 출력이 됩니다

222222.png

왜 setLayout(null) 부분이 단독으로하면 출력되고 다른 panel에 넣어서 하면 출력이 되지 않는걸까요???
어떻게 하면 panel4의 레이아웃을 다른걸로 바꾸지 않고 panel에 panel4를 넣어서 전부 다같이 출력할 수 있을까요?



전체 추천리스트 보기
새로운 댓글이 없습니다.
새로운 댓글 확인하기
글쓰기
◀뒤로가기
PC버전
맨위로▲
공지 운영 자료창고 청소년보호