【发布时间】:2015-10-25 22:44:48
【问题描述】:
如何以编程方式使用Netbeans Platform Application 设置在编辑器模式下打开的TopComponent 窗口的大小?我已经在构造函数中尝试了setSize(500,500),但它不起作用。
【问题讨论】:
如何以编程方式使用Netbeans Platform Application 设置在编辑器模式下打开的TopComponent 窗口的大小?我已经在构造函数中尝试了setSize(500,500),但它不起作用。
【问题讨论】:
我不确定这是否会有所帮助,但模块可以包含对 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));
}
}
}
【讨论】:
@OnShowing 注释的可运行公共类中运行它。
@OnShowing注解放在TopComponent类声明之前,并在同一个类中实现了Runnable接口。我在run() 中放入了相同的sn-p 代码,它甚至没有工作。我将尝试在我的 layer.xml 中添加子节点,并在您所说的同一目录中创建一个 xml。然后我会在一分钟内发布结果。