GTK中的“自定义对话框”不显示任何内容

时间:2019-11-04 20:56:46

标签: java gtk

我试图显示一个简单的对话框,其中包含两个按钮和一个文本字段,供用户使用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(),我只能看到两个按钮,而没有文本输入。

1 个答案:

答案 0 :(得分:0)

在GTK2和GTK3中,窗口小部件默认为隐藏。因此,您必须使用gtk_widget_show()使其明确可见。在这里,您可以进行this.entry.show()(对于创建的每个小部件也是如此)。

或者,您可以在添加所有小部件后使所有子级可见的父容器上执行gtk_widget_show_all()(例如this.showAll())。

在GTK4中,默认情况下小部件可见。因此,当您拥有支持GTK4的java-gnome时,GTK4就不需要这样做。