Прежде всего, я использую IBM Java2 SDK, Standard Edition, v 1.2
Чтобы не начинать, у меня есть два Clasess,
Моя главная цель - динамически добавить класс Panel вJTabbed Панель и выполнение метода из загруженного класса.
Давайте начнем:
Текущее меню, в котором будут храниться кнопки, которые будут запускаться для добавления классов.
Основной класс.
public class WMenu extends javax.swing.JFrame {
JTabbedPane1 = new javax.swing.JTabbedPane();
JBtnexec = new javax.swing.JButton();
JBtnundo = new javax.swing.JButton();
...
public static void main(java.lang.String[] args) {
...
}
/*When the user Press the btn should execute this method.*/
public void exec(java.awt.event.MouseEvent e) {
JPanel content = new JPanel();
/*Name of my class is unknown at this ponit will be controled by Variable for this
case i addit manually, */
Class qc = Class.forName("Wcontrol");
content = (JPanel) qc.newInstance();
JTabbedPane1.addTab("Control", content );
}
/ * при нажатии Отменить btn * /
public void undo(java.util.EventObject newEvent) {
Class wMenu = Class.forName("Wcontrol");
Method m = wMenu.getDeclaredMethod("undo", new Class[] {String.class});
Object c = wMenu.newInstance();
m.invoke(c,new Object[] {new String(this.getClass().getName().toString())});
}
}
Class # 2 / * Моя панель, которая является элементом управления Control. Есть несколько полей меток */
public class Wcontrol extends JPanel {
txt_cve = new javax.swing.JTextField();
public void undo(String in) {
/*txt_cve.setText("TTT"); Comment first test...*/
System.out.println("Data " + txt_cveind.getText());
JOptionPane.showMessageDialog(this, "Data: " +txt_cveind.getText(), "Info", 1);
}
}
Теперь, когда я запускаю, фрейм получился идеальным, когда я выполняю загрузку нового класса Panel, также появился префект, отображаемый на панели JTabed, безпроблемы.
Дело в том, что когда я набираю в txt-поле формы класса Wcontrol example = "TTT" и нажимаю отмену btn (основной класс), выполню метод в wControl, потому что он вышел с ShowСообщение, но текстовых данных нет ... пусто ??
Если я добавлю комментарийtText, и я запускаю его снова отображает данные: TTT Enyone будет знать, что я делаю здесь неправильно?или любое предложение