성장일기 : 문과생의 개발 여정 (งᐖ)ว ( ᐛ )و

[Java Swing]레이아웃 관리자 (Layout Manager) / BorderLayout 본문

백엔드개발/JAVA

[Java Swing]레이아웃 관리자 (Layout Manager) / BorderLayout

hyemi_flora 2023. 11. 30. 17:27

         # 레이아웃 관리자 (Layout Manager)_1107 수업내용

         - 컨테이너에는 레이아웃 관리자를 설정할 수 있다

         - 레이아웃을 설정한 컨테이너어는 컴포넌트를 원하는 위치에 부착할 수 없고

           레이아웃에서 정해주는 위치에만 부착할 수 있다.

         - 컴포넌트를 자유롭게 배치하고 싶다면 해당 컨테이너의 레이아웃 매니저를 null로 설정해야한다.(기본값)

           (setLocation, setSize를 통해 배치한다)

          

           #BorderLayout

           - JFrame의 기본값

           - ,,,,가운데에 컴포넌트를 배치할 수 있다

          

package gui;

 

import java.awt.BorderLayout;

import java.util.ArrayList;

import java.util.List;

 

import javax.swing.JButton;

import javax.swing.JFrame;

 

public class G02_BorderLayout {

public static void main(String[] args) {

 

JFrame f = new JFrame("My GUI Program");

 

//변수 5개 만들기 싫어서 리스트로 만든 것이다.

List<JButton> btns = new ArrayList<>();

for(int i = 1; i <=5; ++i) {

JButton btn = new JButton("Button" + i);

btns.add(btn);

}

 

// 생성자에 gap(여백)을 설정할 수 있는 오버로딩이 존재한다.

// f.setLayout(new BorderLayout()); 기본값 0,0

f.setLayout(new BorderLayout(10, 30));

 

// 보더 레이아웃이 설정된 컨테이너에 컴포넌트를 붙인다.

f.add(btns.get(0), BorderLayout.EAST); // 상수로 사용해야하지만, BorderLayout.EAST EAST 자체가 문자열이기 때문에 "East"사용해도 된다.

f.add(btns.get(1), BorderLayout.SOUTH);

f.add(btns.get(2), BorderLayout.WEST);

f.add(btns.get(3), BorderLayout.NORTH);

f.add(btns.get(4), BorderLayout.CENTER);

 

f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

f.setBounds(100, 100, 500, 500);

f.setVisible(true);

}

}

 

 

 

 

 

 

'백엔드개발 > JAVA' 카테고리의 다른 글

싱글톤 디자인패턴  (1) 2024.01.10
[Java Swing]GridLayout  (0) 2023.11.30
[Java Swing]Java Swing  (0) 2023.11.30
While  (0) 2023.11.09
Break, Continue  (1) 2023.11.09