나는 내 프로그램에 문제가 있음을 설명하기 위해이 코드 샘플을 작성했다.JSplitPane 내에서이 FlowLayout 포장을 어떻게 만들 수 있습니까?
JSplitPane의 슬라이더 막대를 왼쪽으로, 버튼 가장자리를 넘어서서 JPanel을 압축하고 FlowLayout이 단추를 두 번째 줄로 감쌀 수있을 것으로 기대합니다.
대신 JSplitPane을 사용하면 슬라이더를 화면의 가장 오른쪽의 단추 위로 이동시킬 수 없으며 전체 JFrame의 크기를 조정하여 압축을 강제하면 단추가 (오른쪽에서) JPanel은 슬라이더 바 아래에 있습니다 (분명히 볼 수 없기 때문에).
내가 뭘 잘못하고 있니?
import java.awt.*;
import java.io.*;
import java.util.*;
import javax.swing.*;
public class Driver implements Runnable {
public static void main(String[] args) {
(new Driver()).run();
}
public void run() {
try {
go();
} catch (Exception e) {
e.printStackTrace();
System.exit(-1);
}
}
private void go() throws Exception {
JFrame jframe = new JFrame("FlowLayoutTest");
JPanel left = new JPanel();
left.setBackground(Color.RED);
left.setLayout(new BorderLayout());
JPanel right = new JPanel();
right.setBackground(Color.BLUE);
right.setLayout(new BorderLayout());
JSplitPane topmost =
new JSplitPane(JSplitPane.HORIZONTAL_SPLIT, left, right);
jframe.setContentPane(topmost);
JPanel bottomleft = new JPanel();
bottomleft.setBackground(Color.GREEN);
bottomleft.setLayout(new FlowLayout());
left.add(bottomleft, BorderLayout.PAGE_END);
for (int i = 0; i < 10; i++) {
bottomleft.add(new JButton("" + i));
}
jframe.pack();
jframe.setVisible(true);
jframe.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
}
문제는 내 프로그램이 BorderLayout의 다른 섹션 내에 실제 물건을 가지고 있지만 제거하면 'bottomleft'의 동작에 영향을 미치지 않으므로 내 모형에서 생략합니다. – Maarx
내가 찾고있는 것을 할 수있는 FlowLayout 외에 다른 레이아웃 관리자가 있습니까? (한 줄에서 시작하여 초 단위로 줄이고 구성 요소를 위로 확장) – Maarx
"크기를 조정 한 후에는 테두리 레이아웃을 다시 포장해야합니다." "크기를 변경 한 후"실행할 코드는 어디에 삽입해야합니까? – Maarx