DialogBox
에 MigLayout을 사용합니다.텍스트 필드 크기 및 세로 맞춤
모든 패널은 MigLayout을 사용합니다.
쇼 행을위한 패널이 있습니다. 모든 열 (전달 유형, 요소, Sortie 선택)에 대한 패널이 있습니다. 출력 파일 행을위한 패널이 있습니다. 버튼을위한 패널이 있습니다.
아마도 패널을 너무 많이 사용하는 것이 더 좋은 방법일까요?
내 창을 이동시킬 때까지 내 텍스트 필드가 더 크기가 없습니다
//set global layout
this.setLayout(new MigLayout("wrap 3, debug"));
this.add(getSearchPanel(), "span 3, wrap");
// middle section
this.add(getLivraison(), "width 33%");
this.add(getChoixElement(), "width 33%");
this.add(getProfile(), "width 33%");
JLabel lblFichierSortie = new JLabel("Output file");
JTextField txtFichierSortie = new JTextField();
this.add(lblFichierSortie, "span 2, right");
this.add(txtFichierSortie, "width 33%, wrap");
this.add(getButton(), "span 3, right");
private JPanel getSearchPanel() {
JPanel searchPanel = new JPanel(new MigLayout());
JLabel lblEmission = new JLabel("Show");
JTextField txtEmission = new JTextField(10);
JTextField txtEM = new JTextField(5);
searchPanel.add(lblEmission, "width 2%");
searchPanel.add(txtEmission, "split 2,right,width 60%, growx");
searchPanel.add(txtEM, "width 38%, growx");
return searchPanel;
}
private JPanel getLivraison() {
JPanel livraisonPanel = new JPanel(new MigLayout());
JLabel lblComponent1 = new JLabel("Delivery type");
JCheckBox chkFluxElementaire = new JCheckBox("Flux");
JCheckBox chkTranscoding = new JCheckBox("Transcoding");
livraisonPanel.add(lblComponent1, "wrap");
livraisonPanel.add(chkFluxElementaire, "wrap");
livraisonPanel.add(chkTranscoding, "wrap");
return livraisonPanel;
}
private JPanel getChoixElement() {
JPanel component2 = new JPanel(new MigLayout());
JLabel lblChoix = new JLabel("Choose element");
JLabel lblVideo = new JLabel("Vidéo");
JLabel lblAudio = new JLabel("Audio");
JLabel lblAudio2 = new JLabel("Audio 2");
JLabel lblSubTitle = new JLabel("ST");
JLabel lblMontage = new JLabel("Montage");
//todo put combobox below every label
component2.add(lblChoix, "wrap");
component2.add(lblVideo,"wrap");
component2.add(lblAudio,"wrap");
component2.add(lblAudio2, "wrap");
component2.add(lblSubTitle, "wrap");
component2.add(lblMontage, "wrap");
return component2;
}
private JPanel getProfile() {
JPanel component3 = new JPanel(new MigLayout());
JLabel lblSortie = new JLabel("Sortie");
component3.add(lblSortie, "wrap");
JLabel lblProfil = new JLabel("Profil");
component3.add(lblProfil, "wrap");
JComboBox cbxProfil = new JComboBox();
component3.add(cbxProfil, "wrap");
return component3;
}
private JPanel getButton() {
JPanel buttonPanel = new JPanel(new MigLayout("fillx,insets 0"));
JButton okButton = new JButton("Ok");
okButton.setMnemonic('O');
buttonPanel.add(okButton, "split,right,width 100!");
// Cancel button
JButton cancelButton = new JButton("Cancel");
cancelButton.setMnemonic('C');
buttonPanel.add(cancelButton, "width 100!");
return buttonPanel;
}
내 코드, 난 왜 이해가 안 돼요. 또한 모든 열의 구성 요소가 패널 상단에서 시작하는 이유는 무엇입니까?
행의 구성 요소는 기본적으로 수직 가운데 맞춤이 있습니다. 레이아웃에 "상단"행 제약 조건을 추가하여 해당 부분을 수정할 수 있습니다. –
나는이 논문의 레이아웃을 가장 위에 올려 놓았다 : getLivraison() getChoixElement() getProfile() 나는 같은 결과를 얻는다. – redfox26
주 레이아웃에서 행 제약 조건으로 사용합니다 :'this.setLayout (new MigLayout ("wrap 3, debug"));'. –