Swing Unknown Source Fehler

aschunk

Mitglied
Hallo,

ich habe folgendes Problem mit Swing:

public void actionPerformed(ActionEvent evt){
String cmd = (String)evt.getSource();
if(cmd.equals("Neues Projekt...")){
NewProjectDialog frame = new NewProjectDialog();
frame.show();
}
else if(cmd.equals("Speichern unter...")){
JFileChooser fc = new JFileChooser();

fc.setFileSelectionMode(JFileChooser.FILES_AND_DIRECTORIES);
fc.showOpenDialog(MainProjectWindow);


}

}

Bei der Ausführung erhalte ich einen unknown source Fehler - siehe unten:


at javax.swing.AbstractButton.fireActionPerformed(Unknown Source)
at javax.swing.AbstractButton$Handler.actionPerformed(Unknown Source)
at javax.swing.DefaultButtonModel.fireActionPerformed(Unknown Source)
at javax.swing.DefaultButtonModel.setPressed(Unknown Source)
at javax.swing.AbstractButton.doClick(Unknown Source)
at javax.swing.plaf.basic.BasicMenuItemUI.doClick(Unknown Source)
at javax.swing.plaf.basic.BasicMenuItemUI$Handler.mouseReleased(Unknown Source)
at java.awt.Component.processMouseEvent(Unknown Source)
at javax.swing.JComponent.processMouseEvent(Unknown Source)
at java.awt.Component.processEvent(Unknown Source)
 
Du liest von einem Event die Source, aber ich glaube, oder besser gesagt kann ich mir nicht vorstellen (Weil dies eigentlich auch nicht geht) das deine Source ein String ist. Deine Source ist ja wahrscheinlich ein Button oder so. Du musst casten auf den button oder was du da auch immer hast. Und dann geht dies auch. Eine Event.getSource geht nur auf abgeleitete Komponenten von "Component". Sprich irgendwelche grafischen Objekte, und auf diese musst du abfragen.
 
Dir ging es wahrscheinlich darum den Text von einem Button(oder einer anderen Komponente zu bekommen, Verfahren ist dann ähnlich) zu bekommen:
Java:
JButton button = (JButton)evt.getSource;
String cmd = button.getText();
 
Falls Edorado nicht Recht haben sollte, würde ich vorschlagen, dass Du mal den zugehörigen Code postest - also welcher Komponente der zugehörige ActionListener zugeordnet ist.
Dann sieht man vlt. klarer ... 😉

Gruß
Klaus
 
Hallo,

ich habe jetzt mal die Methode gewechselt. Ich benutze jetzt getActionCommand().

Die Events kommen von einem Menü:

JMenuItem newProject = new JMenuItem("Neues Projekt...");
newProject.addActionListener(this);
JMenuItem saveProject = new JMenuItem("Speichern...");
saveProject.addActionListener(this);
JMenuItem printPreview = new JMenuItem("Druckansicht...");
printPreview.addActionListener(this);
JMenuItem printMenu = new JMenuItem("Drucken...");
printMenu.addActionListener(this);
JMenuItem appExit = new JMenuItem("Beenden");
appExit.addActionListener(this);

Diese Events werden dann in der Methode actionPerformed() verarbeitet.


public void actionPerformed(ActionEvent evt){
String cmd = (String)evt.getActionCommand();
if(cmd.equals("Neues Projekt...")){
NewProjectDialog frame = new NewProjectDialog();
frame.show();
}
else if(cmd.equals("Speichern unter...")){
JFileChooser fc = new JFileChooser();

fc.setFileSelectionMode(JFileChooser.FILES_AND_DIRECTORIES);
fc.showOpenDialog(MainProjectWindow);


}
 
aha ... und ???:L

Klappt es jetzt - oder kommt die gleiche Exception noch immer - oder ein anderer Fehler ???:L

Gruß
Klaus

PS: Sorry, aber meine Glaskugel ist derzeit zur Reparatur :lol:
 
Und poste deinen Quelltext doch bitte in Java-Tags, steht in rot über dem Fenster wo du deine Antworten schreibst 😉
 

Zurück
Oben