GridBagLayout
을 사용하여 항목을 표시 할 패널을 디자인하고 있습니다. 내가 찾고 있어요 결과는 다음과 같은 것입니다 : 현재 내가보고하고, 그러나모든 항목이 GridBagLayout 행에 표시되지 않습니다.
다음
그때 내 패널을 초기화 및 레이아웃 설정:
를JPanel surveyDetailsFieldsPane = new JPanel();
surveyDetailsFieldsPane.setMinimumSize(new Dimension(0, 300));
surveyDetailsFieldsPane.setPreferredSize(new Dimension(410, 300));
GridBagLayout detailsGridBagLayout = new GridBagLayout();
surveyDetailsFieldsPane.setLayout(detailsGridBagLayout);
surveyDetailsFieldsPane.setBorder(new EmptyBorder(STANDARD_BORDER,
STANDARD_BORDER,
STANDARD_BORDER,
STANDARD_BORDER));
표에 추가 할 구성 요소를 초기화합니다.
JLabel jobNameLbl.setText("Job Name:");
JTextField jobNameTF = new JTextField(20);
JLabel jobNumLbl.setText("Job Number:");
JTextField jobNumTF = new JTextField(12);
는 다음 나는 addComponentToSurveyDetailsGrid
방법을 사용하여 그리드 구성 요소를 추가 : 사용되는 방법은 다음과 같습니다
// Row 1
addComponentToSurveyDetailsGrid(jobNameLbl, 0, 0, 1, 1, 0, 0, GridBagConstraints.NONE, GridBagConstraints.WEST);
addComponentToSurveyDetailsGrid(jobNameTF, 1, 0, 1, 1, 0, 0, GridBagConstraints.HORIZONTAL, GridBagConstraints.WEST);
// Row 2
addComponentToSurveyDetailsGrid(jobNumLbl, 0, 1, 1, 1, 10, 0, GridBagConstraints.NONE, GridBagConstraints.WEST);
addComponentToSurveyDetailsGrid(jobNumTF, 1, 1, 0, 1, 40, 0, GridBagConstraints.HORIZONTAL, GridBagConstraints.WEST);
addComponentToSurveyDetailsGrid(dateLbl, 4, 1, 1, 1, 10, 0, GridBagConstraints.NONE, GridBagConstraints.WEST);
addComponentToSurveyDetailsGrid(dateTF, 5, 1, 0, 1, 40, 0, GridBagConstraints.HORIZONTAL, GridBagConstraints.WEST);
:
private void addComponentToSurveyDetailsGrid(Component component, int gridX, int gridY,
int gridWidth, int gridHeight, int weightX,
int weightY, int fill, int anchor) {
GridBagConstraints constraint = new GridBagConstraints();
constraint.gridx = gridX;
constraint.gridy = gridY;
constraint.gridwidth = gridWidth;
constraint.gridheight = gridHeight;
constraint.weightx = weightX;
constraint.weighty = weightY;
constraint.fill = fill;
constraint.anchor = anchor;
constraint.insets = new Insets(Dimens.SMALL_BORDER,
Dimens.SMALL_BORDER,
Dimens.SMALL_BORDER,
Dimens.SMALL_BORDER);
detailsGridBagLayout.setConstraints(component, constraint);
surveyDetailsFieldsPane.add(component);
}
날 내가 잘못 여기에 한 일을 알려주세요!
gridbaglayout은 jgoodies에서 formlayout으로 전환 한 이유가 매우 까다 롭습니다. 나는 당신의 격자와 당신의 그리드를 어떻게 만들었는지 짐작합니다. – XtremeBaumer
1) 더 나은 도움을 받으려면 [MCVE] 또는 [짧은, 자기 포함, 올바른 예] (http : //www.sscce. org /). 2) ASCII 아트 또는 GUI의 * 의도 된 * 레이아웃의 간단한 그림을 최소한의 크기로 제공하고 크기를 조정할 수 있으면 더 많은 너비와 높이를 제공하십시오. –
@AndrewThompson 제공된 그림이 잘못 되었나요? – petehallw