# Popup oder Dialog-Feld mit eigenem Inhalt



## Paule (23. Apr 2005)

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!!!


----------



## Roar (23. Apr 2005)

öh? vielleicht meinst du einen JDialog ?


----------



## Paule (23. Apr 2005)

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!


----------



## Gast (23. Apr 2005)

Kann man bin ich auch gerade bei. Ist wie ein Frame


----------



## Roar (23. Apr 2005)

ein JDialog ist halt ein dialogfenster wie in allen programmen


----------



## Paule (23. Apr 2005)

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:


```
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
```


```
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!!


----------



## Paule (23. Apr 2005)

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!!


----------



## Roar (23. Apr 2005)

bitte thread abhaken wenn gelöst


----------



## Paule (23. Apr 2005)

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:


```
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!!


----------



## Paule (23. Apr 2005)

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

Tschau!!!


----------

