簡體   English   中英

如何在GroupLayout中設置JTextPane的寬度?

[英]How do i set the width of an JTextPane in a GroupLayout?

我現在嘗試了幾個小時來設置TextPane的寬度。 我的代碼是這樣的:

private JTextPane eingabe = new JTextPane ();
private JTextPane ausgabe = new JTextPane ();
private JScrollPane scrollbar_eingabe = new JScrollPane(eingabe);
private JScrollPane scrollbar_ausgabe = new JScrollPane(ausgabe);
......
.......

私人無效createLayout(JComponent ... arg){

            Container pane = this.getContentPane();
            GroupLayout layout = new GroupLayout(pane);
            pane.setLayout(layout);          

            layout.setAutoCreateContainerGaps(true);
            layout.setAutoCreateGaps(true);



            layout.setHorizontalGroup(
                    layout.createSequentialGroup() // ------
                    .addComponent(arg[0])
                    .addGroup(layout.createParallelGroup()  
                        .addComponent(arg[1])
                        .addComponent(arg[2]))                
                    .addGroup(layout.createParallelGroup()
                        .addComponent(arg[3])
                        .addComponent(arg[4]))
                   )
           ;              
            layout.setVerticalGroup(layout.createParallelGroup()        // |||||
                    .addComponent(arg[0])
                    .addGroup(layout.createSequentialGroup()
                        .addComponent(arg[1])
                         .addComponent(arg[2]))
                    .addGroup(layout.createSequentialGroup()
                        .addComponent(arg[3])
                        .addComponent(arg[4]))
            );        

           //gl.linkSize(pwd_text, user_text ,user, pwd, start);

            pack();        
        }


    protected void initWindow() 
    {
        .....
        createLayout(start, eingabe_text, scrollbar_eingabe,script_text, scrollbar_ausgabe);
    }

第一個arg是一個按鈕,第二個是一個標簽,然后是第一個Textpane / ScrollPane,然后是另一個標簽和另一個ScrollPane。 到目前為止,組件的排列工作正常,但是我真的不明白如何設置這些文本/滾動條之一的寬度。 第一個窗格的最大寬度應為第二個窗格的1/3。

我程序中的所有內容都可以正常工作,但是我只是笨拙地設置了此Scrollpane的寬度:(

編輯:它應該像這樣鎖定:

A1 A2 A4
   A3 A5
And A3 should have the width A5/3.

編輯:好的,我解決了這個問題:

尺寸d = new Dimension();

            d.height = 610;
            d.width = 250;
            arg[2].setPreferredSize(d);
            Dimension d1 = new Dimension();
            d1.height = 610;
            d1.width = d.width * 4;
            arg[4].setPreferredSize(d1);



            layout.setHorizontalGroup(
                    layout.createSequentialGroup() // ------
                    .addComponent(arg[0])
                    .addGroup(layout.createParallelGroup()  
                        .addComponent(arg[1])
                        .addComponent(arg[2], GroupLayout.PREFERRED_SIZE,
                                GroupLayout.PREFERRED_SIZE,  GroupLayout.PREFERRED_SIZE))                 
                    .addGroup(layout.createParallelGroup()
                        .addComponent(arg[3])
                        .addComponent(arg[4], GroupLayout.PREFERRED_SIZE,
                                GroupLayout.PREFERRED_SIZE,  GroupLayout.PREFERRED_SIZE))
                   )
           ;              
            layout.setVerticalGroup(layout.createParallelGroup()        // |||||
                    .addComponent(arg[0])
                    .addGroup(layout.createSequentialGroup()
                        .addComponent(arg[1])
                        .addComponent(arg[2], GroupLayout.PREFERRED_SIZE,
                                GroupLayout.PREFERRED_SIZE,  GroupLayout.PREFERRED_SIZE))
                    .addGroup(layout.createSequentialGroup()
                        .addComponent(arg[3])
                        .addComponent(arg[4], GroupLayout.PREFERRED_SIZE,
                                GroupLayout.PREFERRED_SIZE,  GroupLayout.PREFERRED_SIZE))
            );        

在Java中,使用grouplayout和其他布局確實令人困惑; D

如果不需要使用GroupLayout,我建議使用其他布局,例如GridLayout或GridBagLayout

要么

JtextPane必須使用不同的布局

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM