2010-01-12 11 views
7

के साथ उन लोगों परिचित के लिए एक सवाल MigLayoutMigLayout उपयोग

खेद प्रश्न के लिए एक अधिक उपयुक्त नाम के बारे में सोच नहीं सकता था ... मैं एक ऐसा प्रतिरूप खत्म हो जाएगा बनाने के लिए कोशिश कर रहा हूँ

की तरह लग रही है:

+---------+---------+ 
| btn1 | btn2 | 
+---------+---------+ 
|     | 
|  btn3  | 
|     | 
+-------------------+ 

जब खिड़की घटकों btn1 और btn2 (प्रत्येक आधा) x- अक्ष भरना चाहिए, और घटक btn3 दोनों x- अक्ष और उपलब्ध स्थान की सभी भरना चाहिए आकार दिया है मैं एन वाई अक्ष।

आप इसे कैसे प्राप्त करेंगे?

यहाँ के साथ शुरू करने के लिए कुछ कोड है:

public static void main(String[] args) 
{ 
    JFrame window = new JFrame(); 
    window.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 
    Container cp = window.getContentPane(); 

    cp.setLayout(new MigLayout("")); 
    cp.add(new JButton("btn1"), ""); 
    cp.add(new JButton("btn2"), ""); 
    cp.add(new JButton("btn3"), ""); 

    window.pack(); 
    window.setVisible(true); 
} 
+0

यदि आप मिगलाउट से परिचित नहीं हैं तो कृपया उत्तर देने से पहले अपने कोड का परीक्षण करें। (क्या यह बेहतर जॉचिम है?) – pstanton

उत्तर

26

यह MigLayout में बहुत आसान है:

setLayout(new MigLayout("fill")); 

add(new JButton("button 1"), "w 50%"); 
add(new JButton("button 2"), "w 50%, wrap"); 
add(new JButton("button 3"), "grow, push, span"); 

आप pstanton के मूल प्रश्न पढ़ते हैं, तो मुझे लगता है कि लेआउट निर्देश आवश्यक हैं कि उन्होंने इसे कैसे बनाया है। मुझे मिगलाउट के बारे में यही पसंद है :)

+0

धन्यवाद! कोई सवाल जो समझता है !! – pstanton

+0

बहुत चालाक - डब्ल्यू 50% पहले के बारे में नहीं पता था। धन्यवाद। – I82Much

2

मैं miglayout उपयोग नहीं किया है, लेकिन यह निम्नलिखित की तरह कुछ किया जाना चाहिए:

... 
cp.add(new JButton("btn1")); 
cp.add(new JButton("btn2"), "wrap"); 
cp.add(new JButton("btn3"), "span"); 
... 
+0

पता नहीं क्यों यह डाउनवॉट किया गया था लेकिन यह एक सही दृष्टिकोण की तरह दिखता है। प्रलेखन को देखते हुए, आपको इसे कन्स्ट्रक्टर में जोड़ने की भी आवश्यकता है: नया मिगलाउट ("", "[उगता हुआ] [बढ़ोतरी]", ""); –

+0

डाउनवॉटेड क्योंकि यह प्रश्न का उत्तर नहीं देता है। अगर आपने जवाब का परीक्षण नहीं किया है और यह नहीं जानता कि यह काम करता है तो क्यों उभारा ?! – pstanton

+0

तीर्थयात्री, यहां तक ​​कि आपके सुझाव के साथ btn1 और btn2 क्षैतिज पैमाने पर नहीं है और btn3 क्षैतिज या लंबवत पैमाने पर नहीं है। – pstanton

-1

तो तुम कुछ इस तरह चाहते हैं:

example image http://img22.imageshack.us/img22/9479/capturadepantalla201001g.png

बहुत Swing Layout Demo यह है, के तहत "प्रवाह की दिशा"

यहाँ कि नमूना से कोड है:

JTabbedPane tabbedPane = new JTabbedPane(); 

tabbedPane.addTab("Layout: flowx, Cell: flowx", createFlowPanel("", "flowx")); 
tabbedPane.addTab("Layout: flowx, Cell: flowy", createFlowPanel("", "flowy")); 
tabbedPane.addTab("Layout: flowy, Cell: flowx", createFlowPanel("flowy", "flowx")); 
tabbedPane.addTab("Layout: flowy, Cell: flowy", createFlowPanel("flowy", "flowy")); 

public JPanel createFlowPanel(String gridFlow, String cellFlow) { 
    MigLayout lm = new MigLayout("center, wrap 3," + gridFlow, 
           "[110,fill]", 
           "[110,fill]"); 

    JPanel panel = createTabPanel(lm); 

    for (int i = 0; i < 9; i++) { 
     JButton b = createButton("" + (i + 1)); 
     b.setFont(b.getFont().deriveFont(20f)); 
     panel.add(b, cellFlow); 
    } 

    JButton b = createButton("5:2"); 
    b.setFont(b.getFont().deriveFont(20f)); 
    panel.add(b, cellFlow + ",cell 1 1"); 

    return panel; 
} 
+0

ओह, मैं अभी तक छवियों को पोस्ट नहीं कर सकता, बस इसे देखने के संदर्भ में उस स्थान को हटा दें। – OscarRyz

+0

हाँ अभी भी नहीं है कि मैं किस बारे में बात कर रहा हूं, साथ ही आपके द्वारा पोस्ट किया गया कोड अपूर्ण है और मैं जो भी पूछ रहा हूं उसका प्रदर्शन नहीं करता है। – pstanton

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