我如何设置一个JTextPane在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);
......
.......

private void 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);
    }

第一个参数是一个按钮,第二个是一个标签,然后是第一个Textpane/ScrollPane,然后是另一个标签和另一个ScrollPane。组件的安排是工作到目前为止,但我真的不知道如何设置这些文本/滚动窗格的宽度之一。第一个窗格的最大宽度应该是第二个窗格宽度的1/3。

一切在我的程序工作正常,但我只是哑巴设置这个滚动面板的宽度:(

编辑:它应该像这样锁定:

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

编辑:好的,我解决了这个问题:

Dimension 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必须在不同的布局

相关内容

  • 没有找到相关文章

最新更新