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

时间:2014-05-02 13:51:14

标签: java swing netbeans jframe

我正在使用netbeans IDE

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

我在TF_appID

中将SearchForNewAppointment jFrame设为公开

没有错误,但是当我点击表格时没有出现任何错误?

        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);
        }

2 个答案:

答案 0 :(得分:1)

为什么不使用活动中心?

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");
            }
        });
    }
}

这意味着发布从订阅中解除耦合。这也意味着您可以为单个事件拥有许多侦听器。

答案 1 :(得分:0)

这取决于您在设置值时是否初始化第二个Jframe中的组件(即TF_appID)。确保在填充动态值之前初始化第二个JFrame及其所需的组件