我正在使用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);
}
答案 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及其所需的组件