G
Gast
Gast
Hallo zusammen,
ich schreibe gerade ein programm, das InternalFrames verwendet. Das Aufrufen aus der Klasse, in der die InternenFrames erzeugt werden funktioniert. Will ich aber eines der Fenster aus einem anderen InternalFrame aufrufen, so wird zwar der code ausgefüht (zu sehen an einem System.out.println) aber das InternalFrame wird nicht angezeigt.
Hauptklasse Frame - hier weden die InternalFrames geladen
Methode in der Hauptklasse zum aufruf der Fenster (funktioniert wenn diese von der Hauptklasse aufgerufen wird)
// aufruf aus MouseClicked in einem JInternalFrame
ich schreibe gerade ein programm, das InternalFrames verwendet. Das Aufrufen aus der Klasse, in der die InternenFrames erzeugt werden funktioniert. Will ich aber eines der Fenster aus einem anderen InternalFrame aufrufen, so wird zwar der code ausgefüht (zu sehen an einem System.out.println) aber das InternalFrame wird nicht angezeigt.
Hauptklasse Frame - hier weden die InternalFrames geladen
Code:
public void initialisation() throws SQLException, ClassNotFoundException, InstantiationException, IllegalAccessException{
Class cls_temp = null;
AbstractAction act_temp = null;
JMenuItem jmi_temp = new JMenuItem();
String[] frames = int0.confread.read_config("frames");
obj_temp_arr = new JInternalFrame[frames.length];
for (int i=0; i < frames.length; i++) {
jmi_temp = new JMenuItem();
obj_temp = new JInternalFrame();
cls_temp = Class.forName(frames[i]);
obj_temp = (JInternalFrame) cls_temp.newInstance();
obj_temp_arr[i] = obj_temp;
jmi_temp.setText(frames_names[i]);
main_desktop_pane.add(obj_temp_arr[i]);
menue_frame.add(jmi_temp);
act_temp = new AbstractAction() {
public void actionPerformed(ActionEvent e) {
int count_x = 0;
while (!frames_names[count_x].equals(e.getActionCommand())){
count_x++;
}
frame_show(count_x);
}
};
jmi_temp.addActionListener(act_temp);
}
}
Methode in der Hauptklasse zum aufruf der Fenster (funktioniert wenn diese von der Hauptklasse aufgerufen wird)
Code:
public void frame_show (int i) {
JInternalFrame frame = obj_temp_arr[i];
frame.setVisible(true);
frame.setLocation(0, 200);
main_desktop_pane.validate();
try {
frame.setSelected(true);
} catch (java.beans.PropertyVetoException e) {}
frame.moveToFront();
main_desktop_pane.setSelectedFrame(frame);
}
// aufruf aus MouseClicked in einem JInternalFrame
Code:
try {
hauptklasse sd = new hauptklasse();
sd.frame_show(1); // die 1 steht für das 1. Fenster im Array
} catch (ClassNotFoundException ex) {
Logger.getLogger(liste.class.getName()).log(Level.SEVERE, null, ex);
} catch (InstantiationException ex) {
Logger.getLogger(liste.class.getName()).log(Level.SEVERE, null, ex);
} catch (IllegalAccessException ex) {
Logger.getLogger(liste.class.getName()).log(Level.SEVERE, null, ex);
}