मैं एक फॉर्म बनाने के लिए माइगलेआउट का उपयोग कर रहा हूं जिसमें JTextFields (लघु इनपुट उत्तर) के साथ-साथ JTextAreas (लंबा उत्तर) भी हैं। समस्या दो गुना है।स्विंग - JTextField और JTextAreas को कैसे मिलाएं और समान दृश्य उपस्थिति कैसे करें?
- स्क्रॉलपेन लिपटे हुए टेक्स्ट क्षेत्र के चारों ओर स्थित सीमा टेक्स्ट फ़ील्ड से मेल नहीं खाती है।
- टेक्स्टरेरा/टेक्स्टफील्ड की चौड़ाई और प्लेसमेंट भिन्न है, जिससे उन्हें सही तरीके से लाइन नहीं करना पड़ता है।
दाएँ/बाएँ से सही करने के लिए बदलने के बाद/भरने: 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 है? अब मुझे पता है कि पाठ क्षेत्र के विपरीत टेक्स्ट फ़ील्ड में इसके चारों ओर एक नीली हाइलाइट है, क्योंकि टेक्स्ट एरिया के विपरीत ... दृश्य विचलन का एक अन्य स्रोत।
[भरें] मदद करता है। हालांकि, आकार अभी भी मैक ओएसएक्स पर सही नहीं है: http://grab.by/3O9U – I82Much
शायद एक अधिक अनुकूलनीय विकल्प एक घटक प्रकार की पसंदीदा सीमा को अपनाना है और इसे दूसरे पर लागू करना है; उदाहरण के लिए, textField.setBorder (scrollPane.getBorder())। –
java.awt.GridBagLayout देने का प्रयास करें। अधिक कोड के लिए मेरे संशोधित उत्तर देखें। –