miglayout을 사용하여 JTextFields (짧은 입력 응답) 및 JTextAreas (긴 응답)가있는 양식을 작성합니다. 문제는 두 가지입니다.스윙 - JTextField와 JTextAreas를 혼합하고 동일한 시각적 모양을 갖는 방법?
- 스크롤 패널 둘러싼 텍스트 영역 주위에 배치 된 테두리가 텍스트 필드의 테두리와 일치하지 않습니다.
- 텍스트 영역/텍스트 필드의 너비와 위치가 달라서 제대로 정렬되지 않습니다. alt text http://grab.by/3RMk 당신은 경계가 줄 것을 볼 수 있습니다,하지만 여전히 격차가 있음 : 오른쪽으로 왼쪽/오른쪽에서 변경 한 후
소스 코드 :
package test2;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JTextArea;
import javax.swing.JTextField;
import net.miginfocom.swing.MigLayout;
public class Test extends JPanel {
private static final int NUM_CHARACTERS_WIDTH = 20;
private static final int NUM_ROWS = 5;
public Test() {
setLayout(new MigLayout(
"wrap 2",
// Align text labels on the so their right edge meets left edge of the text fields
"[right][left]"
));
add(new JLabel("Text field:"));
add(new JTextField(NUM_CHARACTERS_WIDTH));
add(new JLabel("No scrollpane text area:"));
add(new JTextArea(NUM_ROWS, NUM_CHARACTERS_WIDTH));
add(new JLabel("Scrollpane text area:"));
add(new JScrollPane(new JTextArea(NUM_ROWS, NUM_CHARACTERS_WIDTH)));
add(new JLabel("Text field:"));
add(new JTextField(NUM_CHARACTERS_WIDTH));
}
public static void main(String[] args) {
JFrame frame = new JFrame("");
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
JPanel panel = new Test();
frame.add(panel);
frame.pack();
frame.setVisible(true);
}
}
여전히 시각적 조화를 유지하면서 원하는 혼합하는 방법과 일치 JTextField를하고 jtextareas은 무엇입니까? 텍스트 영역과는 대조적으로 텍스트 영역에 초점이있을 때 텍스트 필드에 파란색 강조 표시가 나타납니다. 시각적 불연속의 또 다른 원인입니다.
[채우기]가 도움이됩니다. 그러나 크기는 여전히 Mac OSX에서 완벽하지 않습니다. http://grab.by/3O9U – I82Much
아마도 더 적합한 대안은 한 구성 요소 유형의 기본 설정 테두리를 채택하여 다른 구성 요소 유형에 적용하는 것일 수 있습니다. 예 : textField.setBorder (scrollPane.getBorder()). –
java.awt.GridBagLayout에 시도해보기. 자세한 내용은 수정 된 답변을 참조하십시오. –