지금 swing써서 프레임 하나 만들어야 되는데 밑에 저장이랑 취소 단추만 넣으면 이렇게 깨져버리는데 어쩌면 좋을까요??

혹시 몰라서 코드도 같이 올립니다.



import java.awt.*;

import java.awt.event.*;

import javax.swing.*;


public class TestUI_Fix extends JFrame {

 

 //메뉴바를 위한 변수 

 JMenu menu;

 JMenuBar menuBar;


 //Panel, button 및 JtextArea

 JPanel panel;

 JTextArea testArea;

 JButton a,b;

  

 /*****************************************************************************

  * 생성자  

  ****************************************************************************/

 public TestUI_Fix(){

  

  setLayout(null); //Layout을 NULL로 설정 (컴포넌트의 위치를 사용자가 설정해주어야 함)  

  CreateMenu(); //메뉴바를 추가한다.

  CreatePanel();

  setTitle("TestUI"); //Frame의 타이틀 이름 주기 

  setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); //Frame의 X를 누를경우 종료 

  setSize(400, 500); //Frame의 크기 설정 

//  this.setResizable(false);

  setVisible(true); //생성한 Frame을 윈도우에 뿌리기 

  

 }

 

 /*****************************************************************************

  * 메뉴바를 생성 

  ****************************************************************************/

 private void CreateMenu() {

  

  menuBar = new JMenuBar(); //메뉴바를 생성 

  menu = new JMenu("도서추가"); //'도서추가'라는 메뉴를 생성  

  menuBar.add(menu); //메뉴바에 '파일'이라는 메뉴를 추가 

  menuBar.setBorder(BorderFactory.createLineBorder(Color.gray)); //메뉴바 색상 지정 

  

  setJMenuBar(menuBar);

 }

 /*****************************************************************************

  * Panel을 생성 

  ****************************************************************************/

 private void CreatePanel() {

  

  panel = new JPanel(); //패널을 생성 

  panel.setLayout(null); //패널의 Layout을 NULL

  panel.setBounds(10, 30, 300,220); //패널의 크기 및 위치 지정 (x,y로 부터 넓이(width, 높이(height))


  testArea = new JTextArea();  //JTextArea 생성 

  testArea.setBounds(50, 50, 300, 500); //JTeatArea 크기 및 위치 지정 

  testArea.setEditable(false); //실행시 JtextArea edit 금지 (글을 쓸 수 없음) true면 가능

  

GridLayout grid = new GridLayout(5, 2);

panel.setLayout(grid);

panel.add(new JLabel("책 제목"));

panel.add(new JTextField(""));

panel.add(new JLabel("저 자"));

panel.add(new JTextField(""));

panel.add(new JLabel("출판사"));

panel.add(new JTextField(""));

panel.add(new JLabel("장 르"));

panel.add(new JTextField(""));

panel.add(new JLabel("바코드 번호"));

panel.add(new JTextField("")); 

  

  a = new JButton("저장");  //버튼 생성

  b = new JButton("취소");


  a.setBounds(50, 375, 80, 50); //크기 지정 

  panel.add(a); 

  

  b.setBounds(160, 375, 80, 50);

  panel.add(b); 

  

 

  panel.add(testArea); //패널에 Textarea add

 //패널에 버튼 add

   

  add(panel);  //Frame에 Panel add (JFrame을 상속받았기에 this(생략가능)가 JFrame)

 }


 /*****************************************************************************

  * 메인 함수 

  ****************************************************************************/

 public static void main(String args[]) {

  

TestUI_Fix test = new TestUI_Fix();

 }

}


부디 도와주세요ㅠㅠ