-1
나는 누락 된 단순한 것이 있다고 확신합니다. 그러나 나는 이런 식으로 보이는 간단한 데이터 입력 UI를 만들기 위해 노력하고 있습니다.GridBagLayout not ... behaving
큰 문제는 내가 그들 모두가 자신의 열을 중심 것으로 보인다 것을 좋아하지 않는다는 것입니다. 나는 그들이 TextBoxes에 정렬하고 싶습니다. 여기에 코드가 있습니다.
public void makeTextField(int z, int x, int y, String label, JPanel result){
JPanel jp = new JPanel();
JLabel jl = new JLabel();
jta_array[z] = new JTextArea();
GridBagConstraints gc = new GridBagConstraints();
gc.fill = GridBagConstraints.BOTH;
jp.setLayout(new java.awt.GridBagLayout());
jl.setText(label);
gc.gridx = 1;
gc.gridy = 1;
gc.anchor = GridBagConstraints.EAST;
jp.add(jl,gc);
jta_array[z].setEditable(true);
jta_array[z].setColumns(30);
gc.gridx = 2;
gc.gridy = 1;
gc.anchor = GridBagConstraints.WEST;
jp.add(jta_array[z],gc);
gc.gridx = x;
gc.gridy = y;
gc.anchor = GridBagConstraints.EAST;
result.add(jp,gc);
}
public JPanel makePanel() {
JPanel jp = new JPanel();
jp.setLayout(new java.awt.GridBagLayout());
makeTextField(0,1,1,"Project Number:", jp);
makeTextField(1,1,2,"Project Name:", jp);
makeTextField(2,1,3,"Author Name:", jp);
makeTextField(3,2,3,"Author Email:", jp);
makeTextField(4,3,3,"Author Phone:", jp);
makeTextField(5,1,4,"Architect/Designer Name:", jp);
makeTextField(6,2,4,"Architect/Designer Email:", jp);
makeTextField(7,3,4,"Architect/Designer Phone:", jp);
makeTextField(8,1,5,"Contractor Name:", jp);
makeTextField(9,2,5,"Contractor Email:", jp);
makeTextField(10,3,5,"Contractor Phone:", jp);
return jp;
}
도움을 주시면 큰 도움이 될 것입니다.
아래의 답변에 해당합니다. 새로운 코드 당신은 두 개의 서로 다른 GridBagLayout
의 중첩되는
public void makeTextField(int z, int x, int y, String label, JPanel result){
JLabel jl = new JLabel();
jta_array[z] = new JTextArea();
GridBagConstraints gc = new GridBagConstraints();
gc.fill = GridBagConstraints.BOTH;
jl.setText(label);
gc.gridx = x;
gc.gridy = y;
gc.anchor = GridBagConstraints.EAST;
result.add(jl,gc);
jta_array[z].setEditable(true);
jta_array[z].setColumns(30);
gc.gridx = x+1;
gc.gridy = y;
gc.anchor = GridBagConstraints.WEST;
result.add(jta_array[z],gc);
}
public JPanel makePanel() {
JPanel jp = new JPanel();
jp.setLayout(new java.awt.GridBagLayout());
makeTextField(0,1,1,"Project Number:", jp);
makeTextField(1,1,2,"Project Name:", jp);
makeTextField(2,1,3,"Author Name:", jp);
makeTextField(3,3,3,"Author Email:", jp);
makeTextField(4,5,3,"Author Phone:", jp);
makeTextField(5,1,4,"Architect/Designer Name:", jp);
makeTextField(6,3,4,"Architect/Designer Email:", jp);
makeTextField(7,5,4,"Architect/Designer Phone:", jp);
makeTextField(8,1,5,"Contractor Name:", jp);
makeTextField(9,3,5,"Contractor Email:", jp);
makeTextField(10,5,5,"Contractor Phone:", jp);
return jp;
}
감사합니다. 위의 결과 코드와 스크린 샷을 수정합니다. – Aries7