Popup oder Dialog-Feld mit eigenem Inhalt

Status
Nicht offen für weitere Antworten.

Paule

Aktives Mitglied
Hallo,

ich möchte folgendes tun: Gegeben ist mir ein Array von Strings. Diese möchte ich nun in einem Popup oder etwas ähnlichem ausgeben. Im Popup wollte ich dann RadioButtons einfügen, und die Strings dann als Texte der RadioButtons benutzen (wie ich das mache ist mir klar :wink: )
Ach ja, das ganze ist ein Applet.

So nun meine Frage: Kennt jemand ne Klasse mit der ich sowas realisieren kann? Ich könnte natürlich auch ein neues JPanel anzeigen lassen, aber so ein Popup wäre mir viel lieber. Eine Bedingung noch: Der Text des markierten RadioButtons sollte als String zurückgegeben werden.

Schon mal Danke für die Hinweise.

Gruß Paule!!!
 
Hi,

kann schon sein 🙂

Kann man da auch JButtons einfügen? Also im Prinzip so ne Art GUI drauf erstellen?
Sorry, bin mit der Swing bzw AWT Programmierung noch ganz am Anfang.

Gruß Paule!
 
ein JDialog ist halt ein dialogfenster wie in allen programmen 😉
 
Hi,

ok, der JDialog ist schon sowas wie ich haben wollte. Dafür schon mal danke. Nun hab ich ein kleines Problem beim einfügen der RadioButtons. Hier mein Code:

Code:
public void actionPerformed(ActionEvent evt) {
		Object source = evt.getSource();
		
		if (source == impFrage){
			String[] frageTexte = new String[4];
			Frage gewaehlteFrage = new Frage(); //ist jetzt noch unwichtig
			JDialog frageDialog = new JDialog ();
			JRadioButton frageRButton;
			ButtonGroup frageGroup = new ButtonGroup();
			JButton select = new JButton("auswählen");
			
			frageDialog.setTitle("Frage auswählen");
			frageDialog.setSize(400, 600);
			
			for (int i=0; i<4; i++){
				frageTexte[i] = dummyFrage()[i];
			}
			for (int i=0; i<4; i++){
				if (!frageTexte[i].equals("")){
					frageRButton = new JRadioButton(frageTexte[i]);
					frageDialog.getContentPane().add(frageRButton);
					frageGroup.add(frageRButton);
				}
			}// for i=0 -> 4
			frageDialog.getContentPane().add(select);
			frageDialog.show();
			
		}// impFrage
}// actionPerformed

Code:
public String[] dummyFrage(){
		String tempArray[] = new String[4];
		
		tempArray[0] = "Frage1";
		tempArray[1] = "Frage2";
		tempArray[2] = "Frage3";
		tempArray[3] = "Frage4";
		return tempArray;
	}

Es wird nur der select Button angezeigt, die RadioButtons nicht. Woran lieg das?
Ist bestimmt ein blöder Fehler, aber ich find ihn einfach nicht.

Gruß Paule!!
 
Hat sich schon erledigt.
Es lag am Layout, weil ja standardmäßig BorderLayout eingestellt ist.
Nun hab ich es auf GridLayout geändert, und es funzt.

Bis zum nächsten Problem 🙂
Gruß Paule!!
 
Hi nochmal,

ich hab jetzt das Problem, das ich nicht genau weiß, wie ich an den Text des markierten RadioButton herankomme. Ich hatte es folgendermaßen probiert:

Code:
private void importFrage(){
		String[] frageTexte = new String[4];
		final String gewaehlterFrageText = new String();
		Frage gewaehlteFrage = new Frage();
		JDialog frageDialog = new JDialog ();
		JRadioButton frageRButton;
		final ButtonGroup frageGroup = new ButtonGroup();
		final JButton select = new JButton("auswählen");
		
		frageDialog.setTitle("Frage auswählen");
		frageDialog.setSize(300, 400);
		frageDialog.getContentPane().setLayout(new GridLayout(5,1));
		
		for (int i=0; i<4; i++){
			frageTexte[i] = dummyFrage()[i];
		}
		for (int i=0; i<4; i++){
			if (!frageTexte[i].equals("")){
				frageRButton = new JRadioButton(frageTexte[i]);
				frageRButton.setActionCommand(frageTexte[i]);
				frageDialog.getContentPane().add(frageRButton);
				frageGroup.add(frageRButton);
			}
		}// for i=0 -> 4
		frageDialog.getContentPane().add(select);
		frageDialog.show();
            // bis hier hin läuft alles
		select.addActionListener(new ActionListener(){
									public void actionPerformed(ActionEvent event) {
										Object source = event.getSource();
										
										if (source == select){
											gewaehlterFrageText =
frageGroup.getSelection().getActionCommand(); //hier wird der Fehler angezeigt
											
										}
									}// actionPerformed
		});
	}// importFrage

Folgende Erklärung steht beim Fehler: "Die finale lokale Variable gewaehlterFrageText kann nicht zugeordnet werden, weil sie in einem einschließenden Typ definiert ist."
Wie könnte ich das ActionCommand des RadioButtons an die importFrage Methode übergeben?

Gruß Paule!!
 
So, die Lösung war gar nicht schwer :shock:
Hab's einfach als globale Variable deklariert und schon gings.

Tschau!!!
 
Status
Nicht offen für weitere Antworten.

Zurück
Oben