Paint und JColorChooser

Status
Nicht offen für weitere Antworten.

muemmel_0811

Bekanntes Mitglied
Hi zusammen,

entweder ich bin zu blöd oder zu blöd zum Lesen oder sonst wie, aber ich hab leider noch keine Lösung für mein Problem gefunden :oops:
Per Button möchte in die Farbauswahl aufrufen, wo dann eine Farbe gewählt werden kann und sich dann der Strich, der jetzt in blau gezeichnet ist, sich in bspw. grün färbt.
Zunächst mal der Code, den ich bisher hab:
Java:
public class Akk_q extends JPanel{
    private static final long serialVersionUID = 1L;
    PictureBack pb = new PictureBack();
    Akk_q() {
        double[][] cr = {{800},{175,TableLayout.FILL,rand}};
        setLayout(new TableLayout(cr));
        add(pb, "0,0");
    }
    public class PictureBack extends JPanel{
        private static final long serialVersionUID = 1L;
        PicturePanel pp = new PicturePanel();
        JLabel lbl1 = new JLabel("Rahmenfarbe ändern");
        JButton btnRaFa = new JButton("Rahmenfarbe ändern");
        FarbDialog fb = new FarbDialog();        
        PictureBack() {
            setBackground(new Color(234,234,234));
            setBorder(BorderFactory.createLoweredBevelBorder());
            setLayout(null);
            pp.setBounds(10,10,255,155);
            add(pp);
            btnRaFa.setBounds(290,10,180,26);
            btnRaFa.addActionListener(fb);
            add(btnRaFa);
        }
    }
    public class PicturePanel extends JPanel{
        private static final long serialVersionUID = 1L;
        PicturePanel(){
            setBackground(new Color(255,255,255));
            setLayout(null);
        }
        public void paintComponent(Graphics g) {
            super.paintComponent(g);
            Graphics2D g2 = (Graphics2D) g;
            g2.setColor(Color.BLUE);    g2.setRenderingHint(RenderingHints.KEY_ANTIALIASING,RenderingHints.VALUE_ANTIALIAS_ON);
            BasicStroke stil0 = new BasicStroke(1.0f, BasicStroke.CAP_BUTT, BasicStroke.JOIN_MITER);
            g2.setStroke(stil0);
            Line2D.Float stab0 = new Line2D.Float(30.0f, 40.0f, 30.0f, 130.0f);
            g2.draw(stab0);
        }
    }
    private class FarbDialog implements ActionListener {
        public void actionPerformed(ActionEvent ae) {
            Color col = JColorChooser.showDialog(pb.pp,"Farbe wählen", Color.black);
            if(col != null) {
                pb.pp.repaint();
            }
        }
    }
}
Der Aufruf des Farbdialogs funktioniert schon, aber dann setzt es bei mir aus, denn das ganze passiert ja in der public void actionPerformed, wo ich ja keinen Rückgabewert irgendwie erhalten und weiter verwenden kann. Stellt sich also bei mir die Frage, wie bekomme ich den Wert von col in die paintComponent-Methode bekomme, so dass der Strich dann in der neuen Farbe gezeichnet wird - ich komm nicht drauf, bitte helft mir!

Danke und Grüße,
muemmel_0811
 
Zuletzt bearbeitet von einem Moderator:
M

MiDniGG

Gast
Mit einer get-Methode kannst dir theoretisch die Farbe holen... Nur versteh ich nicht wieso Du den ColorChooser in ne extra Klasse auslagerst... -.- Lass das doch einfach da wo Du auch zeichnest und dann brauchst auch nicht lange mit getter und setter rumhantieren...
 

Schandro

Top Contributor
Bei so nem einfachen Listener innerhalb der eigentlichen Klasse reicht es, das du ne Variable vom Typ Color als Membervariable hast, auf die sowohl der Listener als auch die paint-Methode zugreift...
 

muemmel_0811

Bekanntes Mitglied
Hallo Ihr zwei,

Danke für die schnellen Antworten, aber ich poste ja nicht grundlos im Anfängerforum...

Wärd Ihr vielleicht so nett und würdet Ihr mir Eure Anrgegungen so in Code verpacken, damit ich ungefähr weiß, was ich nun tun soll...
Mal als Beispiel:
Nur versteh ich nicht wieso Du den ColorChooser in ne extra Klasse auslagerst... -.- Lass das doch einfach da wo Du auch zeichnest
Zeig mir doch, wie das dann aussehen soll - die Extraklasse hab ich ja wg. dem Button - ich hab das bisher immer so gemacht und ehrlich gesagt auch noch nicht darum gekümmert, ob es da noch andere sinnvollere Methoden gibt, damit ich die actionPerformed aufrufen kann ohne eine Extra-Klasse zu erstellen... ???:L

Danke und Grüße,
muemmel_0811
 

Schandro

Top Contributor
Ich denke mal, er meint damit das du auch direkt am Ort von addActionListener(..) eine anonyme Implementation des ActionListener-Interfaces hättest machen können anstatt dafür extra ne innere Klasse zu erstellen.
Hat mit deinem Problem aber nichts zu tun.

Weißt du was eine Membervariable ist?
 
M

MiDniGG

Gast
Ich denke mal, er meint damit das du auch direkt am Ort von addActionListener(..) eine anonyme Implementation des ActionListener-Interfaces hättest machen können anstatt dafür extra ne innere Klasse zu erstellen.
Hat mit deinem Problem aber nichts zu tun.

Weißt du was eine Membervariable ist?

Ja meinte ich. Was wirklich blödsinn is im Zusammenhang :oops:
 

muemmel_0811

Bekanntes Mitglied
Oh man :autsch: - jetzt hab ich mir 'ne gefühlte halbe Ewigkeit den Wolf gegoogelt, nur um herauszufinden, dass Membervariablen == Instanzvariablen und ja, dass weiß ich sogar, was es ist :D

Also, was nun wie weiter?
 
M

MiDniGG

Gast
Oh man :autsch: - jetzt hab ich mir 'ne gefühlte halbe Ewigkeit den Wolf gegoogelt, nur um herauszufinden, dass Membervariablen == Instanzvariablen und ja, dass weiß ich sogar, was es ist :D

Also, was nun wie weiter?

Naja. Eben ne Variable definieren, welche Du dann in der Action-Methode befüllen kannst :)
 

muemmel_0811

Bekanntes Mitglied
Naja. Eben ne Variable definieren, welche Du dann in der Action-Methode befüllen kannst :)
Super - Danke Dir - jetzt hab's sogar ich kapiert :toll:
Und für die Nachwelt:
Java:
public class Akk_q extends JPanel{
    private static final long serialVersionUID = 1L;
    Color farbe = Color.black;
    PictureBack pb = new PictureBack();
    
...

      public void paintComponent(Graphics g) {
            super.paintComponent(g);
            Graphics2D g2 = (Graphics2D) g;
            g2.setColor(farbe);

...

private class FarbDialog implements ActionListener {
        public void actionPerformed(ActionEvent ae) {
            Color col = JColorChooser.showDialog(pb.pp,"Farbe wählen", Color.black);
            if(col != null) {
                farbe = col;
                pb.pp.repaint();
            }
        }
    }
Vielen Dank nochmal für die geduldige Hilfe!
Grüße vom muemmel_0811
 
Zuletzt bearbeitet von einem Moderator:
M

MiDniGG

Gast
Dein Bild sieht nicht so aus, als ob Du schon kurz vor'm Renteneintritt stehst und von daher bleibt die Möglichkeit ja noch :D

Danke nochmal!

LOL. Na wer weiß. Vllt is dieses Bild ja auch aus den guten alten 80ern oder das bin gar nicht ich... :-D

Aba nein. Mich mit irgendwelchen Kindern rumärgern is nich mein Ding und vor n paar Leuten reden... Dafür bin ich auch nicht geschaffen -.- Ich bleib bei meiner FI-AE-Ausbildung ;)
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
F Swing - Fehler - Paint Methode Java Basics - Anfänger-Themen 7
S awt: paint Methode zeigt nichts an Java Basics - Anfänger-Themen 9
S Paint Anwendung: Freihandlinien zeichnen Java Basics - Anfänger-Themen 4
S Erste Schritte drawOval Problem in Paint Anwendung Java Basics - Anfänger-Themen 1
R Begrenzer Anzahl von paint() ? Java Basics - Anfänger-Themen 3
S KeyListener/ActionListener/paint()/repaint() Java Basics - Anfänger-Themen 3
thet1983 start & paint Methode? Java Basics - Anfänger-Themen 0
S Interface JButton etc. wird in JFrame mit paint() nicht angezeigt Java Basics - Anfänger-Themen 6
M Probleme mit paint() aus java.awt.Graphics Java Basics - Anfänger-Themen 2
D Wert einer Variable in paint-Methode verwenden Java Basics - Anfänger-Themen 2
OnDemand Berechnung in die start und paint Methode eines Applets Java Basics - Anfänger-Themen 28
T Vererbung Wann wird die Methode paint aufgerufen? Java Basics - Anfänger-Themen 4
L Paint() wird scheinbar nicht richtig ausgeführt Java Basics - Anfänger-Themen 8
N aus Container components paint Java Basics - Anfänger-Themen 2
J paint() vs repaint() Java Basics - Anfänger-Themen 3
A Problem mit paint() Java Basics - Anfänger-Themen 2
A Aufruf der paint() Methode Java Basics - Anfänger-Themen 3
Dogge Problem mit paint(Graphics g) im Applet Java Basics - Anfänger-Themen 13
J Problem mit paint(Graphics g) Java Basics - Anfänger-Themen 4
L Erste Schritte Swing oder SWT Paint mit Grafikkarte? Java Basics - Anfänger-Themen 7
T paint() wird nicht aufgerufen Java Basics - Anfänger-Themen 2
K paint() mit einfügen Java Basics - Anfänger-Themen 14
K doppeltes paint beim Drucken Java Basics - Anfänger-Themen 8
J paint-methode blockiert settings von JComponents Java Basics - Anfänger-Themen 5
F Eine Frage über paint() Funktion Java Basics - Anfänger-Themen 2
S [Applet] Objekte von init bei paint benutzen Java Basics - Anfänger-Themen 9
R Methoden Zeichnen auf Button-Druck durch Paint-Methode Java Basics - Anfänger-Themen 2
W repaint() ruft paint() nicht auf Java Basics - Anfänger-Themen 9
J Zweimal im gleichen Paint-Fenster malen Java Basics - Anfänger-Themen 8
A paint() methode von externer Klasse aufrufen Java Basics - Anfänger-Themen 3
J Paint Methode von JPanel aufrufen Java Basics - Anfänger-Themen 15
V paint funktioniert nicht Java Basics - Anfänger-Themen 14
Q Zeichnen außerhalb der paint-methode Java Basics - Anfänger-Themen 7
O Paint Programm mit Fehler Java Basics - Anfänger-Themen 2
A Methoden Variablen in paint methode Java Basics - Anfänger-Themen 4
K Problem mit Parameter von paint(Graphics g) Java Basics - Anfänger-Themen 3
Y im applet malen ohne repaint paint ? Java Basics - Anfänger-Themen 6
S Datentypen Paint Programm Java Basics - Anfänger-Themen 7
M paint-Methode funzt nicht Java Basics - Anfänger-Themen 11
L Paint zeichnet nicht gespeicherte Objekte Java Basics - Anfänger-Themen 3
D OOP paint() Methode aus Unterklasse anstoßen Java Basics - Anfänger-Themen 3
A paint() - warum nicht aufrufen? Java Basics - Anfänger-Themen 3
K Scrollbar - Bild - paint-Methode - zoom Java Basics - Anfänger-Themen 10
S super.paint() Java Basics - Anfänger-Themen 4
S Bild aus paint() Methode auslagern Java Basics - Anfänger-Themen 14
T Etwas an paint()-Methode übergeben? Java Basics - Anfänger-Themen 6
TheKing Paint-Methode aufrufen Java Basics - Anfänger-Themen 14
N paint methode statt Event-Handling-Methode Java Basics - Anfänger-Themen 3
G hintergrund wird nicht gezeichnet bei paint() Java Basics - Anfänger-Themen 3
H Paint Methode malt nicht im Panel Java Basics - Anfänger-Themen 4
S Frage zur paint-Methode Java Basics - Anfänger-Themen 3
B Applet: Event-Handling-Methode in start- bzw. paint-Methode Java Basics - Anfänger-Themen 7
G Nichtstatische Objekte in der paint()-Methode Java Basics - Anfänger-Themen 16
K Wieso wird "paint" nicht ausgeführt ? Java Basics - Anfänger-Themen 2
K JPanel, JFrame, paint() und wo ist mein Viereck ? Java Basics - Anfänger-Themen 19
F Frage zu JPanel und Paint Java Basics - Anfänger-Themen 5
P paint Methode Java Basics - Anfänger-Themen 3
M Problem mit paint() und Container. Java Basics - Anfänger-Themen 8
B Paint(Component) und externe Objekte Java Basics - Anfänger-Themen 6
T rotes herz public void paint(Graphics g) Java Basics - Anfänger-Themen 2
F Applets und die paint-Methode Java Basics - Anfänger-Themen 3
G frage zu paint Java Basics - Anfänger-Themen 3
T Mehrere paint Methoden in unterschiedlichen Klassen Java Basics - Anfänger-Themen 7
G start-oder paint-Methode anstatt Event-Handling-Methode? Java Basics - Anfänger-Themen 3
G Hilfe in paint() ; zeichnen Java Basics - Anfänger-Themen 15
C Einfaches Paint-Programm Java Basics - Anfänger-Themen 9
T .paint() aufrufen Java Basics - Anfänger-Themen 23
S Paint Teilweise Zeitverzögert Java Basics - Anfänger-Themen 6
R paint problem Java Basics - Anfänger-Themen 6
G mit paint() ins JPanel malen. Java Basics - Anfänger-Themen 6
M Auf Panels oder Labels malen? (paint) Java Basics - Anfänger-Themen 9
G repaint in paint aufrufen? Java Basics - Anfänger-Themen 9
V paint()-methode manuell aufrufen? kein autostart erwuenscht Java Basics - Anfänger-Themen 3
B Problem mit Einfügen von Choice (in ein Applet) aus Paint Java Basics - Anfänger-Themen 13
7 In Paint keine Schleife? Java Basics - Anfänger-Themen 13
T paint() wieder aus einder anderen methode aufrufen funzt nid Java Basics - Anfänger-Themen 2
G Paint auf Panel Java Basics - Anfänger-Themen 4
G Paint Methode löscht alles Java Basics - Anfänger-Themen 4
S paint() direkt auf JFrame seit 1.5 nicht mehr möglich? Java Basics - Anfänger-Themen 5
A Variablenübergabe in die Paint-Funktion Java Basics - Anfänger-Themen 4
D Zeichnen mit Paint zerstört ganzes Fenster Java Basics - Anfänger-Themen 5
G Klassen und paint methode Java Basics - Anfänger-Themen 2
T paint() ohne konstruktor aufzurufen? Java Basics - Anfänger-Themen 5
P paint() Java Basics - Anfänger-Themen 6
U paint Java Basics - Anfänger-Themen 8
X Malen außerhalb der paint() Methode Java Basics - Anfänger-Themen 4
C zu viele paint()'s. Java Basics - Anfänger-Themen 6
G Zeichnen ausserhalb der paint Methode Java Basics - Anfänger-Themen 4
V Problem mit der Anzeige einer paint-Methode in einem Panel Java Basics - Anfänger-Themen 2
N Probleme mit paint() bei Implementierung in ein Panel Java Basics - Anfänger-Themen 4
Dilandau paint(Graphics g) { unbekannt in try{} / catch{} }? Java Basics - Anfänger-Themen 5
D von paint() und repaint() im Applet Java Basics - Anfänger-Themen 4
C Ausgaben mit der Paint-Methode Java Basics - Anfänger-Themen 5
A Wert vom Typ rgb ausgeben per JColorchooser Java Basics - Anfänger-Themen 3
B Farbe wählen ohne JColorChooser Java Basics - Anfänger-Themen 13
StrikeTom JColorchooser auf JInternalframe Java Basics - Anfänger-Themen 4
J JColorChooser Wert in String Java Basics - Anfänger-Themen 14
S JColorChooser Problem Java Basics - Anfänger-Themen 4

Ähnliche Java Themen

Neue Themen


Oben