如何以编程方式设置TopComponent的大小?

时间:2015-10-25 22:44:48

标签: java netbeans-platform

如何以编程方式使用TopComponent以编程方式设置Netbeans Platform Application窗口的大小?我已经在构造函数中尝试了setSize(500,500),但它没有用。

1 个答案:

答案 0 :(得分:0)

我不确定这是否有用,但模块可以包含对layer.xml中设置的更改,这些更改会改变模式起始位置的大小/位置。您的顶级组件将停靠在其中一种模式中,因此更改其大小应更改顶部组件的大小。

例如模块中的layer.xml:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE filesystem PUBLIC "-//NetBeans//DTD Filesystem 1.2//EN" "http://www.netbeans.org/dtds/filesystem-1_2.dtd">
<filesystem>
    <folder name="Windows2">
        <folder name="Modes">
            <file name="editor.wsmode" url="modesettings.xml"/>
        </folder>
    </folder>
</filesystem>

这指向同一目录中的modesettings.xml。

<?xml version="1.0" encoding="UTF-8"?>
<mode version="2.4">
    <module name="org.netbeans.core.ui/1" spec="1.2"/>
    <name unique="editor"/>
    <kind type="view"/>
    <state type="separated"/>
    <constraints>
        <path orientation="horizontal" number="20" weight="0.3"/>
        <path orientation="vertical" number="20" weight="0.5"/>
    </constraints>
    <bounds x="137" y="192" width="660" height="200"/>
    <frame state="0"/>
    <empty-behavior permanent="true"/>
</mode>

您还可以使用以下内容更改启动时的模式边界:

@OnShowing
public class ModeBoundsSetter implements Runnable {

    @Override
    public void run() {
        WindowManager wm = WindowManager.getDefault();
        Mode mode = wm.findMode("editor");
        if(null != mode) {
            mode.setBounds(new Rectangle(0,0,2000,100));
        }
    }
}