JtextFields (kısa giriş cevapları) ve JTextAreas (Daha uzun cevaplar) olduğu bir form oluşturmak için miglayout kullanıyorum. Sorun iki yönlüdür.Salıncak - JTextField ve JTextAreas nasıl karıştırılır ve aynı görsel görünüme sahiptir?
- Scrollpane sarılı metin alanının etrafına yerleştirilen kenarlık, bir Metin Alanı ile uyuşmuyor.
- Textarea/textfield'in genişliği ve yerleşimi, bunların düzgün bir şekilde hizalanmasına neden olmadan farklılık gösterir. alt text http://grab.by/3RMk Sen sınırları hizaya olduğunu görebilirsiniz, ama yine de boşluklar olduğunu: sağa sola/sağa gelen değiştirdikten sonra
Kaynak kodu:
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);
}
}
hala görsel bir uyum korurken tercih karıştırmak için bir yol ve maç JTextField ve jtextareas, nedir? Metin alanının, odakta olduğu zaman, metin alanının tersine mavi bir vurgunun bulunduğunu fark ettim ... başka bir görsel süreksizlik kaynağı.
[Doldur] yardımcı olur. Ancak, boyut hala Mac OSX'te mükemmel değil: http://grab.by/3O9U – I82Much
Belki de daha uyumlu bir alternatif, bir bileşen tipinin tercih edilen sınırını benimsemek ve diğerine uygulamak; ör., textField.setBorder (scrollPane.getBorder()). –
Bir java.awt.GridBag vermeyi deneyin. Daha fazla kod için değiştirilmiş cevabı gör. –