如何将鼠标点击结果发送到另一个 jFrame'?



我正在使用netbeans IDE

我在"如何将mouseClick结果发送到另一个jFrame"中遇到了一个问题?

我在SearchForNewAppointment jFrame 中将TF_appID设置为公共

没有错误,但当我点击表格时,什么都没有出现?

        SearchForNewAppointment show = new SearchForNewAppointment();
        int row = appointment_table.getSelectedRow();
        String table_click = (appointment_table.getModel().getValueAt(row, 0).toString());
        String sql = "select * from appointment where app_id = '"+table_click+"' ";
        pst = conn.prepareStatement(sql);
        rs = pst.executeQuery();
        if(rs.next()){
           String add1 = rs.getString("app_id");
           show.TF_appID.setText(add1);
        }

为什么不使用事件中心?

public interface EventHub {
    void subscribe(String eventName, EventHandler handler);
    void publish(String eventName, Object context);
}
public interface EventHandler {
    void onEvent(Object context);
}

EventHub是一个单例,它被注入到两个帧中。

public class Frame1 extends JFrame {
    public Frame1(final EventHub hub) {
        Button button = new Button("click-me");
        button.addAddActionListener(new ActionListener() {
           public void actionPerformed(ActionEvent evt) {
              // for this simple event, the context is null. In the future,
              // more complex events might need some contextual info
              hub.publish("myCustomEvent", null);
           }
        });
        super.add(button);
    }
}
public class Frame2 extends JFrame {
    public Frame2(EventHub hub) {
        hub.subscribe("myCustomEvent", new EventHandler() {
            public void onEvent(Object context) {
               System.out.println("Button was clicked");
            }
        });
    }
}

这意味着发布与订阅是解耦的。这也意味着一个事件可以有许多侦听器。

这取决于第二个Jframe(即TF_appID(中的组件在您为其设置值时是否初始化。在填充动态值

之前,请确保初始化第二个Jframe及其所需组件

相关内容

  • 没有找到相关文章

最新更新