JColorChooser Prob mit Ok/Abbr.

  • Themenstarter Themenstarter Steven
  • Beginndatum Beginndatum
Status
Nicht offen für weitere Antworten.
S

Steven

Gast
Hallo,

ich verwende einen angepassten JColorChooser dem ich 2 Panel entfernt habe nach etwa diesem Beispiel: http://javaalmanac.com/egs/javax.swing.colorchooser/RemPanels.html

Das ist auch gar nicht das Problem. Nur bekomme ich die gewählte Farbe auch zugewiesen wenn ich im ColorChooser Dialog auf Abbrechen klicke und nciht nur bei ok.

Mein Code:

Code:
		chooser = new JColorChooser();

		AbstractColorChooserPanel[] oldPanels = chooser.getChooserPanels();

		for (int i = 0; i < oldPanels.length; i++) {
			String clsName = oldPanels[i].getClass().getName();
			if (clsName
					.equals("javax.swing.colorchooser.DefaultSwatchChooserPanel")) {
				// Remove swatch chooser
				chooser.removeChooserPanel(oldPanels[i]);
			} else if (clsName
					.equals("javax.swing.colorchooser.DefaultRGBChooserPanel")) {
				// Remove rgb chooser
				chooser.removeChooserPanel(oldPanels[i]);
			}
		}

Dann noch im MouseListener (eigene Klasse), denn der ColorChooserDialog soll beim Anklicken eines kleinen Panels aufpoppen:

Code:
public void mousePressed(MouseEvent e) {
			Object source = e.getSource();

			if (source == p1) {
				
				dialog1 = JColorChooser.createDialog(
						ColorChooserDialog.this, "Farbwähler", true, chooser, this,
						this);
				dialog1.setVisible(true);
				
				Color color = chooser.getColor();
				System.out.println(color);
				p1.setBackground(color);
				p1.repaint();
			}

Danke schon mal im Voraus!

Gruß,
Steven
 
du ordnest mit
Code:
            dialog1 = JColorChooser.createDialog(
                  ColorChooserDialog.this, "Farbwähler", true, chooser, this,
                  this);
OK und Cancel den gleichen Listener zu, den du auch dem Button p1 gibst, oder?
ich denke, es fehlt soetwas wie if (source == OKButton) { .. } und if (source == CancelButton) { .. }
[edit] denn bisher macht der Listener nichts, wenn source!=p1 .. [/edit]
 
norman hat gesagt.:
du ordnest mit
Code:
            dialog1 = JColorChooser.createDialog(
                  ColorChooserDialog.this, "Farbwähler", true, chooser, this,
                  this);
OK und Cancel den gleichen Listener zu, den du auch dem Button p1 gibst, oder?
ich denke, es fehlt soetwas wie if (source == OKButton) { .. } und if (source == CancelButton) { .. }
[edit] denn bisher macht der Listener nichts, wenn source!=p1 .. [/edit]

Danke! Ich hab übersehen, dass für beide Buttons ein Listener vorgesehen ist. Mit p1 hat das nichts zu tun. Das waren nur die Panels die für das aufpoppen des Choosers verantwortlich sind.

Vielen Dank für die schnelle Hilfe!

Gruß,
Steven
 
Status
Nicht offen für weitere Antworten.

Zurück
Oben