Java GTK中的自定义对话框不存在;我什么也没表现出来
我试图使用JavaGNOME绑定为GTK显示一个简单的对话框,其中包含两个按钮和一个文本字段,供用户输入。这就是我所拥有的:Java GTK中的自定义对话框不存在;我什么也没表现出来,java,gtk,Java,Gtk,我试图使用JavaGNOME绑定为GTK显示一个简单的对话框,其中包含两个按钮和一个文本字段,供用户输入。这就是我所拥有的: import org.gnome.gtk.*; 导入org.gnome.pango.FontDescription; 公共类GrepDialog扩展对话框{ 私人入境; 公共GrepDialog(窗口父级){ 超级(“Grep”,父级,假); 此.setDefaultSize(320100); 此参数为.setresizeable(false); this.entry=新
import org.gnome.gtk.*;
导入org.gnome.pango.FontDescription;
公共类GrepDialog扩展对话框{
私人入境;
公共GrepDialog(窗口父级){
超级(“Grep”,父级,假);
此.setDefaultSize(320100);
此参数为.setresizeable(false);
this.entry=新条目(“regex即将出现”);
this.entry.overrideFont(新的FontDescription(“Monospace,14”);
添加(条目);
这个.addButton(Stock.FIND,ResponseType.OK);
此.addButton(Stock.CANCEL,ResponseType.CANCEL);
}
公共字符串getRegex(){
return entry.getText();
}
}
我创建了一个新的GrepDialog,call.run(),我只能看到两个按钮,没有文本条目。在GTK2和GTK3中,小部件默认是隐藏的。因此,您必须使用
gtk\u widget\u show()
显式使其可见。在这里,您可以对创建的每个小部件执行this.entry.show()
(以及类似操作)
或者,在添加所有小部件后,您可以在父容器上执行gtk\u widget\u show\u all()
(例如,this.showAll()
),这将使每个子部件都可见
在GTK4中,小部件默认可见。因此,GTK4中不需要这样做(当您有支持GTK4的java gnome时)。我临时修复了这个问题,添加了
this.getChild().showAll()
在构造函数的末尾,但我认为这不是一个有效的解决方案。您必须将this.add(条目)更改为this.getContentArea().add(条目)