Hallo,
ich habe folgendes Problem:
Ich habe ein Hauptfenster mit verschiedenen Buttons, die jeweils ein Unterfenster öffnen. In diesen Unterfenstern sind Buttons, Listen, etc. Gehe ich jetzt nach Programmstart zum ersten mal in eines der Unterfenster und führe eine definierte Opration durch drücken eines Buttons aus, erscheint nach Abschluß ein JOptionPane mit einer Meldung ob die Opration geklappt hat oder nicht. Den JOptionPane muss ich mit einem OK-Button bestätigen. Anschließend kehre ich zum Unterfenster zurück. Starte ich das selbe Unterfenster nochmal und führe die gleiche Operation wie oben aus, erscheind der JOptionPane zweimal hintereinander. Das gleiche Phänomen habe ich auch bei dem Knopf, bei dem ich einen Process einen Textedito starte. Hat jemand eine Idee woran das liegen könnte?
Hier einmal ausschnittsweise der Code:
main:
Bemerkung: Kommt so aus dem JBuilder
Hauptfenster:
Unterfenster:
DLNamesProfessional_ScanFolderstructureDialog:
DLNamesProfessional_Info:
Ich Danke schonmal im Voraus für eure Hilfe
ich habe folgendes Problem:
Ich habe ein Hauptfenster mit verschiedenen Buttons, die jeweils ein Unterfenster öffnen. In diesen Unterfenstern sind Buttons, Listen, etc. Gehe ich jetzt nach Programmstart zum ersten mal in eines der Unterfenster und führe eine definierte Opration durch drücken eines Buttons aus, erscheint nach Abschluß ein JOptionPane mit einer Meldung ob die Opration geklappt hat oder nicht. Den JOptionPane muss ich mit einem OK-Button bestätigen. Anschließend kehre ich zum Unterfenster zurück. Starte ich das selbe Unterfenster nochmal und führe die gleiche Operation wie oben aus, erscheind der JOptionPane zweimal hintereinander. Das gleiche Phänomen habe ich auch bei dem Knopf, bei dem ich einen Process einen Textedito starte. Hat jemand eine Idee woran das liegen könnte?
Hier einmal ausschnittsweise der Code:
main:
Code:
public class main {
public main() {
DLNamesProfessional frame = new DLNamesProfessional();
// Frames überprüfen, die voreingestellte Größe haben
// Frames packen, die nutzbare bevorzugte Größeninformationen enthalten, z.B. aus ihrem Layout
if (packFrame) {
frame.pack();
} else {
frame.validate();
}
// Das Fenster zentrieren
Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize();
Dimension frameSize = frame.getSize();
if (frameSize.height > screenSize.height) {
frameSize.height = screenSize.height;
}
if (frameSize.width > screenSize.width) {
frameSize.width = screenSize.width;
}
frame.setLocation((screenSize.width - frameSize.width) / 2,
(screenSize.height - frameSize.height) / 2);
frame.setVisible(true);
try {
jbInit();
} catch (Exception ex) {
ex.printStackTrace();
}
}
public static void main(String[] args) {
if(args.length>0) {
pathToUserSettings = args[0];
}
SwingUtilities.invokeLater(new Runnable() {
public void run() {
try {
UIManager.setLookAndFeel(UIManager.
getSystemLookAndFeelClassName());
} catch (Exception exception) {
exception.printStackTrace();
}
new main();
}
});
}
}
Bemerkung: Kommt so aus dem JBuilder
Hauptfenster:
Code:
public class DLNamesProfessional extends JFrame {
[...]
JButton scanButton = new JButton();
[...]
scanButton.addActionListener(new DLNamesProfessional_scanButton_actionAdapter(this));
[...]
public void scanButton_actionPerformed(ActionEvent e) {
DLNamesProfessional_ScanFolderstructureDialog sfd = new DLNamesProfessional_ScanFolderstructureDialog(this);
// Das Fenster zentrieren
Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize();
Dimension frameSize = sfd.getPreferredSize();
if (frameSize.height > screenSize.height) {
frameSize.height = screenSize.height;
}
if (frameSize.width > screenSize.width) {
frameSize.width = screenSize.width;
}
sfd.setLocation((screenSize.width - frameSize.width) / 2, (screenSize.height - frameSize.height) / 2);
sfd.setModal(true);
sfd.pack();
sfd.show();
}
[...]
class DLNamesProfessional_scanButton_actionAdapter implements ActionListener {
private DLNamesProfessional adaptee;
DLNamesProfessional_scanButton_actionAdapter(DLNamesProfessional adaptee) {
this.adaptee = adaptee;
}
public void actionPerformed(ActionEvent e) {
adaptee.scanButton_actionPerformed(e);
}
}
[...]
Unterfenster:
Code:
public class DLNamesProfessional_ScanFolderstructureDialog extends JDialog implements ActionListener {
[...]
JButton runScanButton = new JButton();
[...]
runScanButton.addActionListener(new DLNamesProfessional_ScanFolderstructureDialog_RunScanButtonListener());
[...]
}
DLNamesProfessional_ScanFolderstructureDialog:
Code:
public class DLNamesProfessional_ScanFolderstructureDialog_RunScanButtonListener implements ActionListener {
[...]
public void actionPerformed(ActionEvent e) {
[...]tu was[...]
DLNamesProfessional_Info info = new DLNamesProfessional_Info("Scan complete.\nNo naming and numbering errors.");
}
}
DLNamesProfessional_Info:
Code:
public class DLNamesProfessional_Info {
//constructor
DLNamesProfessional_Info(String infoString) {
Object[] button = {"Ok"};
int info = JOptionPane.showOptionDialog(
null, //parent window
infoString, //message
"Information", //title
0, //option type
JOptionPane.INFORMATION_MESSAGE,//message type
null, //don't use a custom icon
button, //the titles of buttons
button[0]); //default button title
}
}
Ich Danke schonmal im Voraus für eure Hilfe