我试图显示一个简单的对话框,其中包含两个按钮和一个文本字段,供用户使用GTK的java-gnome绑定输入。这就是我所拥有的:
import org.gnome.gtk.*;
import org.gnome.pango.FontDescription;
public class GrepDialog extends Dialog {
private Entry entry;
public GrepDialog(Window parent) {
super("Grep", parent, false);
this.setDefaultSize(320, 100);
this.setResizable(false);
this.entry = new Entry("regex is going to be here");
this.entry.overrideFont(new FontDescription("Monospace, 14"));
this.add(entry);
this.addButton(Stock.FIND, ResponseType.OK);
this.addButton(Stock.CANCEL, ResponseType.CANCEL);
}
public String getRegex() {
return entry.getText();
}
}
我创建了一个新的GrepDialog,调用.run(),我只能看到两个按钮,而没有文本输入。
最佳答案
在GTK2和GTK3中,默认情况下隐藏小部件。因此,您必须使用gtk_widget_show()
明确使其可见。在这里,您可以执行this.entry.show()
(并且对于创建的每个小部件都类似)。
或者,在添加所有小部件后,您可以在父容器上执行gtk_widget_show_all()
(例如,this.showAll()
),这将使每个子级都可见。
在GTK4中,默认情况下小部件可见。因此,在GTK4中(当您具有支持GTK4的java-gnome时)就不需要此功能。