Hintergrundfarbe des Panels ändert sich nicht

Tinipieps

Mitglied
Hallo!
Ich habe bei meinem JFrame die Hintergrundfarbe des contentPane (getContentPane() ) geändert.
Leider ändert sich in diesem Fall die Farbe eines JPanels nicht.
Auf diesem JPanel habe ich eine ButtonGroup eingefügt.
Liegt es daran?
Wie kann man die Hintergrundfarbe des JPanels ändern?
 
Code:
public void createGUI(String text) {
		final String release = text;
		System.out.println(release);
		
		Container contentPane = getContentPane();
		contentPane.setBackground(Color.WHITE);
		
		this.setDefaultCloseOperation(EXIT_ON_CLOSE);
		this.setMinimumSize(getPreferredSize());
		this.setResizable(false);
		this.setVisible(true);
		
		// um GUI zentriert anzuzeigen
		Dimension dim = Toolkit.getDefaultToolkit().getScreenSize();
		int x = ((int)dim.getWidth()-300)/2;
		int y = ((int)dim.getHeight()-300)/2;
		this.setLocation(x, y);
		
		this.namingAendern(release);
				
		this.add(this.ueberschrift, BorderLayout.NORTH);
		ueberschrift.setFont(new Font ("Bitte wählen Sie einen Server aus:"
										,0,28));
		

		this.add(this.ninjoIcon, BorderLayout.WEST);
		
		this.panelServerGroup.setLayout(new GridLayout(0,1));
//		this.panelServerGroup.setLayout(new BoxLayout(panelServerGroup, 
//												BoxLayout.Y_AXIS));
		
		this.fillRadioBox(release);
		this.panelServerGroup.setBackground(Color.WHITE);
		this.add(this.panelServerGroup, BorderLayout.CENTER);
		
		this.add(this.ok, BorderLayout.SOUTH);
		
		ok.addActionListener(new ActionListener(){

			@Override
			public void actionPerformed(ActionEvent arg0) {
				Process myProcess = null;
					try {
						// Versuch, NinJo zu starten
						myProcess =  Runtime.getRuntime().exec
							("rundll32 url.dll,FileProtocolHandler " +
							   "D:\\NinJo\\release_"+release+
							   		"\\client\\bin\\run_client.bat");
						myProcess.waitFor();
						// Fenster schließen
					System.exit(0);
				} catch (Exception ex) {
					JOptionPane.showMessageDialog(
									ServerAuswahlMenue.this, "FEHLER");
				}		
			}
		});
		
		contentPane.add(this.panelServerGroup);
		
		this.pack();

	}
 
Hallo,

und was ist in der panelServerGroup ?
Java:
this.panelServerGroup.setLayout(new GridLayout(0,1));
this.panelServerGroup.setLayout(new BoxLayout(panelServerGroup, BoxLayout.Y_AXIS));
und was soll das? <---- das soll nicht unfreundlich klingen :)




Grüße
 
Zuletzt bearbeitet:
Das JPanel panelServerGroup wird durch die Methode fillRadioBox() befüllt.
Das BoxLayout ist auskommentiert. (Habe noch beide Varianten drin, da ich noch nciht weiß, wie es aussehen soll.)

Code:
protected void fillRadioBox(String text) {
		final String release = text;
		
		AuswahlController ac = new AuswahlControllerImpl(text);
		String[]keys=ac.getServerKeys();
		
		Arrays.sort(keys);
				
		for (String i:keys ) {
			final JRadioButton button = new JRadioButton (i, true);

				button.addActionListener(new ActionListener() {
					@Override
					public void actionPerformed(ActionEvent e) {
							try{								
									ServerAuswahlMenue.namingAendern
										(button.getText(), release);
							} catch (Exception ex) {
								ex.printStackTrace();
							}
						}
				});
			serverAuswahl.add(button);
			panelServerGroup.add(button);
		}		
	}
 
jetzt kann ich nicht genau erkennen, wie die Buttons da angelegt sind.

Kann es sein, das du den Hintergrund der Buttons weiss machen musst, das sie das Panel überlagern?
 
Zurück