我正在使用 miglayout 创建一个表单,其中有 JTextFields(简短的输入答案)以及 JTextAreas(较长的答案)。问题是双重的。
- 放置在 Scrollpane 环绕文本区域周围的边框与文本字段的边框不匹配。
- textarea/textfield 的宽度和位置不同,导致它们无法正确排列。
从右/左更改为右/填充后: alt text http://grab.by/3RMk 您可以看到边界对齐,但仍有差距。我尝试设置 novisualpadding 但这并没有解决它。
源代码:
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 的首选方法是什么?我现在注意到,当焦点在其中时,文本字段周围有一个蓝色突出显示,而不是文本区域......另一个视觉不连续性的来源。