Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/332.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java GTK中的自定义对话框不存在;我什么也没表现出来_Java_Gtk - Fatal编程技术网

Java 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=新

我试图使用JavaGNOME绑定为GTK显示一个简单的对话框,其中包含两个按钮和一个文本字段,供用户输入。这就是我所拥有的:

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(条目)