JSplitPane은 JComponent 클래스의 하위 클래스로, 두 개의 컴포넌트를 하나의 패인(pane) 안에서 가로 또는 세로 방향으로 나란히 배치할 수 있도록 해주는 Swing 컴포넌트입니다. 또한 사용자가 프로그램 실행 중에 분할선(divider)을 드래그하여 양쪽 컴포넌트의 표시 영역 크기를 자유롭게 조절할 수 있다는 점이 특징입니다.
JSplitPane에서 자주 사용되는 주요 메서드는 remove(), removeAll(), resetToPreferredSizes(), setDividerLocation() 등이 있으며, PropertyChangeListener 인터페이스를 구현하여 분할선 위치 변경과 같은 속성 변화 이벤트도 처리할 수 있습니다.
JSplitPane에 배경색 적용하기
JSplitPane 자체에 직접 배경색을 지정하기보다는, 먼저 두 개의 JPanel에 서로 다른 배경색을 각각 설정한 뒤, 이 패널들을 JSplitPane 생성자의 인수로 전달하는 방식으로 배경색을 효과적으로 표현할 수 있습니다.
예제 코드
import javax.swing.*;
import java.awt.*;
public class JSplitPaneColorTest extends JFrame {
private JSplitPane jsp;
private JPanel panel1, panel2;
public JSplitPaneColorTest() {
setTitle("JSplitPane Example");
// 첫 번째 패널에 밝은 회색 배경색 설정
panel1 = new JPanel();
panel1.setBackground(Color.lightGray);
// 두 번째 패널에 파란색 배경색 설정
panel2 = new JPanel();
panel2.setBackground(Color.blue);
// 두 패널을 가로 분할 방식으로 JSplitPane에 추가
jsp = new JSplitPane(JSplitPane.HORIZONTAL_SPLIT, panel1, panel2);
jsp.setDividerSize(10); // 분할선 두께 설정
jsp.setResizeWeight(0.5); // 창 크기 변경 시 좌우 균등하게 조절
add(jsp);
setDefaultCloseOperation(EXIT_ON_CLOSE);
setLocationRelativeTo(null);
setSize(400, 275);
setVisible(true);
}
public static void main(String args[]) {
new JSplitPaneColorTest();
}
}
실행 결과
위 코드를 실행하면 왼쪽에는 밝은 회색(lightGray), 오른쪽에는 파란색(blue) 배경을 가진 두 개의 패널이 가로 분할선을 기준으로 나뉘어 표시됩니다. 분할선의 두께는 setDividerSize() 메서드로 10픽셀로 지정되었으며, setResizeWeight(0.5) 설정 덕분에 창 크기를 변경해도 좌우 영역이 균형 있게 유지됩니다.
