나는 분명히BoxLayout을 사용하여 구성 요소를 전체 행에 늘릴 수있는 방법은 무엇입니까?
성분이 최대 너비가없는 경우는 어떻게 것을 말한다 How To Use BoxLayout 문서 찾고 있어요? 이 경우 모든 구성 요소의 X 축 정렬이 동일하면 모든 구성 요소의 크기가 입니다.
인스턴스를 JPanel
에 많이 추가한다고 가정 해 보겠습니다. 버튼의 최대 너비가 이 아니고이고 모두이 버튼에 대해 setAlignmentX(Component.LEFT_ALIGNMENT)
을 호출하면 각 버튼이 전체 행에 걸쳐 늘어납니다. 설명서는 아래 그림을 사용하여이를 보여줍니다.
나는이 작업을 얻을 수 없습니다!
setMaximumSize(null
) 및 setMaximumSize(new Dimension(-1,-1))
및 setMaximumSize(new Dimension(0,0))
버튼을 사용해 보았지만 아무런 설명이 없습니다.
: 그것은 말할 때
는 excactly 문서는 무엇을 의미 하는가
최대 너비는 무엇입니까?
제가 제작할 수 있었던 최고는 아래에 있습니다. 문서를 읽으면 버튼이 전체 행에 걸쳐 늘어날 수 있어야합니다. 나는 이것을 위해 다른 레이아웃 관리자를 사용할 수도 있다는 것을 알고 있지만, 이것을 BoxLayout
(문서가 옳다는 것을 인정/문서를 올바르게 이해했다)으로 이것을하고 싶습니다.
public class CustomList extends JPanel {
private final Box box = Box.createVerticalBox();
public CustomList() {
for (int i = 0; i < 10; i++) {
JButton b = new JButton("Button item" + i);
//b.setMaximumSize(new Dimension(0,0));
b.setAlignmentX(Component.LEFT_ALIGNMENT);
box.add(b);
}
setLayout(new BoxLayout(this, BoxLayout.PAGE_AXIS));
add(box, BorderLayout.CENTER);
}
public static void main(String[] args) {
CustomList l = new CustomList();
l.setSize(200, 200);
l.setBackground(Color.red);
JFrame frame = new JFrame("Vertical Box");
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.add(l, BorderLayout.CENTER);
frame.setSize(300, 200);
frame.setVisible(true);
}
}
JButton을 JPanel로 바꾸면 (최대 크기 설정 여부에 관계없이) 각 JPanel이 전체 행에 걸쳐 늘어납니다. – sbrattla