2011-01-30 11 views
14
  1. यह पूरी पंक्ति/स्तंभ के लिए GridBagLayout में एक मार्जिन/padding सेट करने के लिए संभव है? मैं बाधाओं पर वस्तु का उपयोग करता हूं-वस्तु हालांकि, इस दृष्टिकोण का उपयोग करके मुझे प्रत्येक घटक पर नीचे से पैडिंग सेट करने की आवश्यकता है।मार्जिन/GridBagLayout जावा में गद्दी

  2. यह JFrame में सामग्री के सभी पैड करना संभव है? क्योंकि अब हर घटक फ्रेम के साथ गठबंधन है।

constraints.weightx = 2; 
    constraints.weighty = 1; 
    constraints.fill = GridBagConstraints.BOTH; 
    addComponent(this, layout, constraints, questionPanel = new QuestionPanel(), 0, 0, 1, 1); 

    constraints.weightx = 1; 
    constraints.weighty = 1; 
    constraints.fill = GridBagConstraints.BOTH; 
    addComponent(this, layout, constraints, categoryPanel = new CategoryPanel(), 0, 1, 1, 1); 

    constraints.weightx = 1; 
    constraints.weighty = 0; 
    constraints.fill = GridBagConstraints.HORIZONTAL; 
    addComponent(this, layout, constraints, answerPanel = new AnswerPanel(), 1, 0, 2, 1); 

    constraints.weightx = 1; 
    constraints.weighty = 2; 
    constraints.fill = GridBagConstraints.BOTH; 
    addComponent(this, layout, constraints, tabPane = new JTabbedPane(), 2, 0, 2, 1); 

    constraints.weightx = 1; 
    constraints.weighty = 0; 
    constraints.fill = GridBagConstraints.NONE; 
    constraints.anchor = GridBagConstraints.SOUTHEAST; 
    addComponent(this, layout, constraints, buttonPanel = new ButtonPanel(), 3, 1, 1, 1); 

मैं एक निजी विधि addComponent उपयोग कर रहा हूँ:

private void addComponent(Container context, GridBagLayout _layout, GridBagConstraints   _constraints, Component component, int row, int column, int width, int height) { 
    _constraints.gridx = column; 
    _constraints.gridy = row; 
    _constraints.gridwidth = width; 
    _constraints.gridheight = height; 

    _layout.setConstraints(component, _constraints); 
    context.add(component); 
} 

मैं कुछ कैसे जोड़ सकता हूँ "हवा (गद्दी/मार्जिन)" कोशिकाओं के बीच?

+0

मैं हाँ और हाँ कहूंगा ... हालांकि, कुछ कोड पर बिना किसी विचार के, यह निश्चित रूप से बताना मुश्किल है। क्या आप एक स्निपेट पोस्ट कर सकते हैं? इससे बहुत मदद मिलेगी, आपके प्रश्न बहुत सामान्य हैं। – chahuistle

उत्तर

6

जहाँ तक मुझे पता है, पहले एक करने का एकमात्र तरीका है प्रत्येक बाधा के लिए इन्सेट ऑब्जेक्ट सेट करने के लिए ... (हाथ-कोडिंग लेआउट स्पष्ट रूप से जावा में आसान नहीं बनाया गया था: पी)

लेकिन किसी भी इंसेट या किसी भी चीज़ के साथ गड़बड़ किए बिना दूसरा करने का एक बहुत ही आसान तरीका है: सामग्री के लेआउट को फ़्लोलाइट पर सेट करें जो भी लंबवत और क्षैतिज अंतराल आप चाहते हैं, सामग्री पैनल में एक पैनल जोड़ें, और ContentPane में सबकुछ जोड़ने के बजाय, इसे अपने नए पैनल में जोड़ें।

+0

धन्यवाद :) मुझे शायद इंससेट के बारे में दुःस्वप्न होगा .. – LuckyLuke

30

उदाहरण के लिए GridBagConstraints वर्ग

की inset संपत्ति का उपयोग करें:

GridBagConstraints c = new GridBagConstraints(); 
c.insets = new Insets(3,3,3,3); 

आशा यह आपके लिए क्या देख रहे है।

संबंधित मुद्दे