【问题标题】:How do i set the width of an JTextPane in a GroupLayout?如何在 GroupLayout 中设置 JTextPane 的宽度?
【发布时间】:2015-10-13 22:03:46
【问题描述】:

我现在尝试了几个小时来设置我的 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);
    }

第一个 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

【问题讨论】:

    标签: java grouplayout


    【解决方案1】:

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

    JtextPane 必须在不同的布局下

    【讨论】:

    • 我想我需要一个 grouplayout,因为它必须像 A1 A2 A4 A3 A5 。到目前为止我还没有得到布局;(你认为 Gridlayout 可以解决这个问题吗?我可以将 2 个字段合二为一吗?编辑:妈的,可以在这里格式化我的文本
    • 添加 extraJPanels 然后 setsize() 或 setpreferredsize() 然后我建议 .addComponent(arg[1]) 到 .addComponent(extraJPanel1.addComponent(arg[1)]) 我目前没有 Java 编译器所以我无法测试它
    猜你喜欢
    • 1970-01-01
    • 2014-10-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-06-26
    • 2013-08-14
    • 2021-02-27
    • 2020-01-28
    相关资源
    最近更新 更多