Я использую 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);
}
Почему бы не использовать концентратор событий?
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 и его необходимые компоненты