JColorChooser Problem

Status
Nicht offen für weitere Antworten.

schubero

Mitglied
Hie mein Code:

Code:
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
import java.awt.Color;

public class FileInfo extends JFrame implements ActionListener, ComponentListener
{

    
    
    private static final String BEENDEN ="beenden";
   
    public FileInfo()
    {
        
        
        
        //JPanel für Buttons 
        JPanel pb = new JPanel();
        
        //JPanel für GridLayout
      
        
        //JButtons (Öffnen Vordergrund Hintergrund)
        JButton dö = new JButton("Datei öffnen");
        dö.setActionCommand("datöffnen");
        dö.addActionListener(this);
        JButton vg = new JButton("Vordergrund");
        //ActionListener 
        vg.setActionCommand("vordergrund");
        vg.addActionListener(this);
        
        JButton hg = new JButton("Hintergrund");
        hg.setActionCommand("hintergrund");
        hg.addActionListener(this);
        
        //JButton Beenden
        JButton bee = new JButton("Beenden"); 
        bee.addActionListener(this);
        bee.setActionCommand(BEENDEN);
        
       
        
        
        pb.add(dö);
        pb.add(vg);
        pb.add(hg);
        
        //Schrift setzen
        Font font1 = new Font("", Font.BOLD + Font.ITALIC, 11);
        Font font2 = new Font("", Font.ITALIC, 11);
        
        //Variablen für Mittelteil
         String name = "Hallo";
         String verzeichnis;
         String groesse;
         String änderungdatum;
         String lesedatei;
         String versteckt;
         
         
         //Farbvariable
         
         
        
        
        //JLabel für Text Mittelteil
        
        JLabel lbldatname = new JLabel(name);
        lbldatname.setFont(font1);
*******************************************************************************
        lbldatname.setForeground(col);
*******************************************************************************
        JLabel lblverzeichnis = new JLabel();
        JLabel lblgroesse = new JLabel();
        JLabel lblädat = new JLabel();
        JLabel lbllesedat = new JLabel();
        JLabel lblversteckt = new JLabel();
        
        
        
        //JPanel für GridLayout
        
        JPanel gl = new JPanel();
        gl.setLayout(new GridLayout(6,2));
        gl.add(new JLabel("Dateiname:"));
        gl.add(lbldatname);
        gl.add(new JLabel("Verzeichnis:"));
        gl.add(new JLabel(":"));
        gl.add(new JLabel("Dateigröße:"));
        gl.add(new JLabel(":"));
        gl.add(new JLabel("Änderungsdatum:"));
        gl.add(new JLabel(":"));
        gl.add(new JLabel("Nur-Lese-Datei:"));
        gl.add(new JLabel(":"));
        gl.add(new JLabel("Versteckte Datei:"));
        gl.add(new JLabel(":"));
        
        
        
        
        
        setDefaultCloseOperation(EXIT_ON_CLOSE);
        setSize(400,250);
        Dimension d = Toolkit.getDefaultToolkit().getScreenSize();
       setLocation((int) (d.getWidth()- getSize().width)/2,
                			(int) (d.getHeight()-getSize().height)/2);
        
       addComponentListener(this);
        
        
        //Button Panel an Fenster hängen
        add(pb, BorderLayout.NORTH);
        //Mittelteil an Fenster
       add(gl, BorderLayout.CENTER);
        //Beenden Button an Fenster
       add(bee, BorderLayout.SOUTH);
        //Fenster sichtbar machen
       setVisible(true);
        setVisible(true);
              
    }
    
    public void componentHidden(ComponentEvent e){}
    public void componentMoved(ComponentEvent e){}
    public void componentShown(ComponentEvent e){}
    public void componentResized(ComponentEvent e) 
    {
        int width = getWidth();
        int height = getHeight();
        if (width<400) width=400;
        if (width>800) width =800;
        if(height<150) height = 150;
        if (height > 400) height = 400;        
        setSize(width, height);
        
    }  
    
   
    public void actionPerformed(ActionEvent e)
    {
        if(e.getActionCommand().equals(BEENDEN))
        {
            System.exit(0);
        }
        if(e.getActionCommand().equals("vordergrund"))
        {
            Color newColor = JColorChooser.showDialog(this, "Vordergrundfarbe auswählen",null);
            System.out.println(newColor);
            Color col = newColor;
            
            
            
        }
    }
    
    
    public static void main(String[] args)
    {
        FileInfo info = new FileInfo();
    }
}


Mein Problem ist, dass der JColorChooser mir ein Farbe zurückgibt(hab ich durch System.out.print getestet
nur ich kann die Farbe nicht dem

lbldatname.setForeground(col);

übergeben.

Kann mir bitte jemand sagen was ich falsch mache?

Danke
 
1. wird sich dein code gar nicht kompilieren lassen, da es im FileInfo konstruktor kein col gibt.
und 2. setzt du nirgendwo lbldatname.setForeground().
also setze dem label die farbe nach dem öffnen des choosers
oh mondieu in actionPerformed() gibts das label ja gar nicht -> label als instanzvariable deklarieren.
 
schubero hat gesagt.:
Hab ich lbldatname nicht in Zeile 73 gesetzt?
jo, das stimmt, aber woher soll denn die actionPerformed() methode wissen dass du in irgendeiner methode mal irgendein label mit dem variablennamen lbldatname erzeugt hast und auf ein fenster geaddet hast? du musst das label als instanzvariable deklarieren
 
Status
Nicht offen für weitere Antworten.

Neue Themen


Zurück
Oben