У меня есть три класса, где я создаю объекты, которые являются JPanels, т.е. MyObject расширяет JPanel. Я вызываю все три панели в основном вызове метода.Связь между GUI Java
MyObject1 mo1 = new MyObject1(); // contains a textfield and a button
MyObject2 mo2 = new MyObject2(); // contains a textarea holding a long paragraph
MyObject3 mo3 = new MyObject3();
Как я могу заставить mo1 вызывать методы на mo2, изменяя текст текстовой области?
Спасибо за все предложения, ребята! Я собираюсь пойти дальше и принять первый ответ. Это решило мою проблему.
Update Один из этих панелей представляют собой сочетание двух других панелей в моей программе, которая была затрудняющих моя способность передать экземпляр объекта к определенному классу. Удалив этот класс панели и просто создав jpanel в главном, добавив две панели в новый jpanel, я смог передать экземпляры классов каждому конструктору.
Таким образом, в свою очередь, мое решение было
JPanel panelHolder = new JPanel(); // create a panel in my main instead of a new class
MyObject2 mo2 = new MyObject2(); // contains a textarea holding a long paragrah
MyObject1 mo1 = new MyObject1(mo2); // contains a textfield and a button
panelHolder.add(mo1);
panelHolder.add(mo2);
MyObject3 mo3 = new MyObject3();
, а затем в классе mo2:
private MyObject1 object1;
// constructor for mo2 Class
public MyObject2(MyObject1 object1){
this.object1 = object1; // to get the instance of object1
....// other constructor pieces
}
снова спасибо, ребята!
Как вы управляете событиями? Я предполагаю, что mo1 имеет обработчик событий, когда вы нажимаете кнопку. – 2013-05-13 19:01:26
Да, я создал ActionListener для кнопки, задает текстовое поле имени файла, который вы открываете с помощью кнопки. но затем я хочу дать другому Jpanel все содержимое файла. –