/ / ग्रिड मुद्दे GridBagLayout का उपयोग करते हुए - जावा, स्विंग, लेआउट-मैनेजर, ग्रिडबैगेलआउट

ग्रिडबैगआउट - जावा, स्विंग, लेआउट-मैनेजर, ग्रिडबैगआउट का उपयोग कर लेआउट मुद्दे

मैं एक आवेदन करना चाहता हूं जो नीचे दी गई तस्वीर की तरह अधिक या कम दिखाई देगा:

यहां छवि विवरण दर्ज करें

मैंने ऊपर के लिए कोड लिखा है JPanel लेकिन मुझे इसके परिणाम नहीं मिले। मेरा आउटपुट इस तरह है:

यहां छवि विवरण दर्ज करें

मेरा कोड यहाँ है:

public class Main extends JPanel {

private JFrame frame;

/**
* Launch the application.
*/
public static void main(String[] args) {
EventQueue.invokeLater(new Runnable() {
public void run() {
try {
new Main().frame.setVisible(true);
} catch (Exception e) {
e.printStackTrace();
}
}
});
}

/**
* Create the application.
*/
public Main() {
frameinit();
}

/**
* Initialize the contents of the frame.
*/
private void frameinit() {
frame = new JFrame();
frame.setTitle("Tool Title");
frame.add(this);
frame.setPreferredSize(new java.awt.Dimension(1000, 800));
frame.setSize(new Dimension(1000,800));
frame.setResizable(false);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.pack();
frame.setLocationRelativeTo(null);

this.setLayout(new GridBagLayout());
GridBagConstraints c;
JLabel LTitle,Lcus,Lmode,Lsc,Lcorbank,Lavd,Lrate,Lcrate,Lvaldate,Lbc,Lr;
JTextField Tcus,Tmode,Tsc,Tcorbank,Tavd,Trate,Tcrate,Tvaldate,Tbc,Tr;
LTitle = new JLabel("Title");
c = new GridBagConstraints();
c.gridx=0;
c.gridy=0;
c.gridwidth=4;
c.gridheight=1;
add(LTitle, c);
Lcus = new JLabel("Customer");
c.gridx=0;
c.gridy=1;
c.gridwidth=1;
c.gridheight=1;
add(Lcus, c);
Lmode = new JLabel("Mode");
c.gridx=0;
c.gridy=2;
c.gridwidth=1;
c.gridheight=1;
add(Lmode, c);
Lsc = new JLabel("Sell Ccy");
c.gridx=0;
c.gridy=3;
c.gridwidth=1;
c.gridheight=1;
add(Lsc, c);
Lcorbank = new JLabel("Correspondant Bank");
c.gridx=0;
c.gridy=4;
c.gridwidth=1;
c.gridheight=1;
add(Lcorbank, c);
Lavd = new JLabel("Amount Value Date");
c.gridx=0;
c.gridy=5;
c.gridwidth=1;
c.gridheight=1;
add(Lavd, c);
Lrate = new JLabel("Rate");
c.gridx=2;
c.gridy=1;
c.gridwidth=1;
c.gridheight=1;
add(Lrate, c);
Lcrate = new JLabel("Coverage Rate");
c.gridx=2;
c.gridy=2;
c.gridwidth=1;
c.gridheight=1;
add(Lcrate, c);
Lavd = new JLabel("Value Date");
c.gridx=2;
c.gridy=3;
c.gridwidth=1;
c.gridheight=1;
add(Lavd, c);
Lbc = new JLabel("Buy Ccy");
c.gridx=2;
c.gridy=4;
c.gridwidth=1;
c.gridheight=1;
add(Lbc, c);
Lr = new JLabel("Remarks");
c.gridx=2;
c.gridy=5;
c.gridwidth=1;
c.gridheight=1;
add(Lr, c);
Tcus = new JTextField();
c.gridx=1;
c.gridy=1;
c.gridwidth=1;
c.gridheight=1;
add(Tcus, c);
Tmode = new JTextField();
c.gridx=1;
c.gridy=2;
c.gridwidth=1;
c.gridheight=1;
add(Tmode, c);
Tsc = new JTextField();
c.gridx=1;
c.gridy=3;
c.gridwidth=1;
c.gridheight=1;
add(Tsc, c);
Tcorbank = new JTextField();
c.gridx=1;
c.gridy=4;
c.gridwidth=1;
c.gridheight=1;
add(Tcorbank, c);
Tavd = new JTextField();
c.gridx=1;
c.gridy=5;
c.gridwidth=1;
c.gridheight=1;
add(Tavd, c);
Trate = new JTextField();
c.gridx=4;
c.gridy=1;
c.gridwidth=1;
c.gridheight=1;
add(Trate, c);
Tcrate = new JTextField();
c.gridx=4;
c.gridy=2;
c.gridwidth=1;
c.gridheight=1;
add(Tcrate, c);
Tvaldate = new JTextField();
c.gridx=4;
c.gridy=3;
c.gridwidth=1;
c.gridheight=1;
add(Tvaldate, c);
Tbc = new JTextField();
c.gridx=4;
c.gridy=4;
c.gridwidth=1;
c.gridheight=1;
add(Tbc, c);
Tr = new JTextField();
c.gridx=4;
c.gridy=5;
c.gridwidth=1;
c.gridheight=1;
add(Tr, c);
}

}

उत्तर:

जवाब के लिए 0 № 1

आधिकारिक ट्यूटोरियल से:

जब तक आप वेटेक्स या वेटी के लिए कम से कम एक गैर-शून्य मान निर्दिष्ट नहीं करते, सभी घटक उनके कंटेनर के केंद्र में एक साथ टकराते हैं।

तो आपको बस सेट करने की आवश्यकता है:

c.weightx=1.0;
c.weighty=1.0;

इसके अलावा, आप एंकर को भरने और भरने के लिए कुछ मूल्य निर्धारित करना चाह सकते हैं।

एंकर के लिए डिफ़ॉल्ट मान और काम को काफी भर देते हैंज्यादातर समय, हालांकि वे प्रत्येक घटक के व्यवहार को और अधिक अनुकूलित करने के लिए उपयोगी होते हैं। उदाहरण के लिए, यदि आप चाहते हैं कि JTextField उतना ही चौड़ा हो जितना कि यह हो सकता है c.fill=GridBagConstraints.HORIZONTAL, या यदि आप चाहते हैं कि यह बाएं मार्जिन के बजाय दाएं मार्जिन को छू रहा है c.anchor=GridBagConstraints.LINE_END...