JDialog -> owner

Status
Nicht offen für weitere Antworten.

Creativ

Aktives Mitglied
Hi,
Ich habe mal wieder ein kleines Problem mit Java 😀

Und zwar wollte ich jetzt mal einen JDialog ausprobieren. Hatte zuerst folgenden Test-Code: (gekürzt)

Code:
public class taschenrechner extends JFrame implements ActionListener {

	public taschenrechner() {
getContentPane().setLayout(new FlowLayout());
	}

	public static void main(String[] args) {
		taschenrechner frm = new taschenrechner();
		
		WindowQuitter wquit = new WindowQuitter();
		frm.addWindowListener(wquit);
		
		frm.setTitle("Taschenrechner");
		frm.setSize(370,290);
		frm.setResizable(false);
		frm.setVisible(true);

		JDialog dia = new JDialog(frm,"Dialog:D", true);
		dia.setVisible(true);


	}

}

Das hat er auch soweit richtig angezeigt und das Dialog-Fenster kam auch.

Jetzt wollte ich das aber machen, das der Dialog erst kommt, wenn man auf einen Button klickt.
Habe dann also noch eine neue Funktion:
Code:
	public void actionPerformed(ActionEvent evt) {
JDialog dia = new JDialog(frm,"Dialog:D", true);
			dia.setVisible(true);
}

Aber wenn ich das so mache, dann kriege ich immer folgende Fehlermeldung:

Exception in thread "AWT-EventQueue-0" java.lang.Error: Unresolved compilation problem:
frm cannot be resolved

Soweit ich das sehe liegt es denke ich mal daran, dass die Variable frm nur in main vorhanden ist, und in actionPerformed halt nicht, aber ich weiß nicht wie ich es anders machen kann.
Habt ihr eine Idee?

Danke schonmal😀
 
hmm....irgendwie steh ich glaub ich auf dem Schlauch^^

Ich müsste frm dann ja eigentlich in actionPerformed() deklarieren, aber dann würde das Fenster doch nicht geöffnet wenn ich das Programm dann starte,
Deshalb muss ich doch das Fenster und gleichzeitig damit frm doch in main() deklarieren.

Aber wie kriege ich es jetzt in actionPerformed()?
Mit static hatte ich es schon probiert, aber das ging nicht^^
 
Hi,
Danke!
Habe es jetzt hingekriegt. Habe einfach an den Anfang noch folgendes eingefügt:

Code:
static taschenrechner frm;

Aber jetzt habe ich noch ein anderes Problem. Und zwar wollte ich eine klasse auslagern.

Habe also ein package calculations erstellt und das in eine neue datei eingefügt.

Dann habe ich an den Anfang der ersten Datei halt noch
import calculations.*;
eingefügt.
Das macht soweit auch keine Fehler, aber beim aufrufen kommt ein Fehler.

Bisher hatte ich immer das so aufgerufen:

Code:
og.addActionListener(new mathFunc(erg));
		log.setActionCommand("log");

Jetzt kriege ich aber immer folgende Fehlermeldung:

The type mathFunc is not visible

Habe es auch schon versucht mit calculations.mathFunc usw.,aber irgendwie funktioniert das nicht.
Was mache ich falsch?😀
 
Status
Nicht offen für weitere Antworten.

Zurück
Oben