如何在JavaGNOME中创建自定义信号?
我试图在我的如何在JavaGNOME中创建自定义信号?,java,gtk3,Java,Gtk3,我试图在我的GTK+3应用程序中的javagnome中创建自定义信号,但我不能 import org.gnome.gtk.CheckButton; public class MyCheckButton extends CheckButton { // how can I add a cutom signal for this class // fos example: the signal that has "my-signal" name. } 我怎么做 我可以用pyth
GTK+3
应用程序中的javagnome
中创建自定义信号,但我不能
import org.gnome.gtk.CheckButton;
public class MyCheckButton extends CheckButton {
// how can I add a cutom signal for this class
// fos example: the signal that has "my-signal" name.
}
我怎么做
我可以用python来做
class MyCheckButton(Gtk.CheckButton):
__gsignals__ = {
'my_signal': (GObject.SIGNAL_RUN_FIRST, None,
(int,))}
abc = MyCheckButton()
abc.connect("my-signal", print)
abc.emit("my-signal", 543)
我在网上搜索过,但什么也没找到
谢谢。我认为Java中没有类似的方法(基于源代码中没有类似结构的事实) 但您可以通过以下方式实现自己的处理程序:
- 定义处理程序接口(#1)
- 添加连接方法(#2,#3)
- 添加发射方法(#4)
public class MyCheckButton extends CheckButton {
// ...
private MySignalHandler handler; // #2
public interface MySignalHandler { // #1
public void onMySignal(int value);
}
public void connect(MySignalHandler handler) { // #3
this.handler = handler;
}
public void emitMySignal(int value) { // #4
if (handler == null) return;
handler.onMySignal(value);
}
}
然后,您可以以与其他事件相同的方式连接和发射
MyCheckButton a = new MyCheckButton();
a.connect(new MyCheckButton.MySignalHandler() {
public void onMySignal(int value) {
System.out.println(value);
}
});
a.emitMySignal(10);
内置的
按钮
通过添加connect(Clicked handler)
和emitClicked()
()请编辑您的问题,使其包含一个与您遇到的问题类似的事件,并解释要在何处添加自定义信号。@Progman,我编辑了我的问题,您可以再次检查。我想那个按钮必须实现。单击,这在中进行了描述