私はmiglayoutを使用して、JTextFields(短い入力回答)とJTextAreas(長い回答)があるフォームを作成しています。問題は2つあります。
- スクロールペインでラップされたテキスト領域の周囲に配置された境界線が、テキストフィールドの境界線と一致しません。
- 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を組み合わせて一致させるための好ましい方法は何ですか?テキスト領域とは対照的に、フォーカスがテキストフィールドにある場合、テキストフィールドの周囲に青いハイライトがあることに気付きました...視覚的な不連続性のもう1つの原因です。