Tôi đang sử dụng miglayout để tạo biểu mẫu trong đó có JTextFields (câu trả lời đầu vào ngắn) cũng như JTextAreas (Câu trả lời dài hơn). Vấn đề là gấp đôi.Swing - làm thế nào để kết hợp JTextField và JTextAreas và có ngoại hình giống nhau?
- Đường viền được đặt xung quanh vùng văn bản được cuộn trong Scrollpane không khớp với vùng văn bản.
- Chiều rộng và vị trí của textarea/textfield khác nhau, khiến chúng không xếp hàng chính xác.
Sau khi thay đổi từ phải/trái sang phải/điền: alt text http://grab.by/3RMk Bạn có thể thấy rằng các giới hạn xếp hàng, nhưng điều đó vẫn còn những khoảng trống. Tôi đã thử cài đặt novisualpadding nhưng điều này không khắc phục được. đang
Nguồn:
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);
}
}
cách ưa thích để trộn và kết hợp JTextField và jtextareas là gì, trong khi vẫn duy trì sự hài hòa hình ảnh? Bây giờ tôi nhận thấy rằng trường văn bản có một điểm nhấn màu xanh xung quanh nó khi lấy nét ở trong đó, trái ngược với vùng văn bản ... một nguồn gián đoạn hình ảnh khác.
[fill] giúp. Tuy nhiên, kích thước vẫn không hoàn hảo trên Mac OSX: http://grab.by/3O9U – I82Much
Có lẽ một giải pháp thay thế thích hợp hơn là áp dụng đường viền ưa thích của một loại thành phần và áp dụng cho loại khác; ví dụ: textField.setBorder (scrollPane.getBorder()). –
Xem xét việc thử java.awt.GridBagLayout. Xem câu trả lời đã sửa đổi của tôi để biết thêm mã. –