Hintergrund

Status
Nicht offen für weitere Antworten.
G

Guest

Gast
Hi!
Ich hab ein Programm geschrieben, mit dem man Texte editieren kann. Nun zu meiner Frage:

Ich will den Hintergrund per Knopfdruck verändern. Das funktioniert auch gut. Nur mein Problem ist, das der Hintergrund erst dann verändert wird, wenn man das Programm entweder ein Stück aus dem Bildschirm schiebt, oder es kleiner oder größer zieht.


Schonmal thx für eure Antworten.

Hier der Quelltext: (Er könnte euch bekannt sein)



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


public class Writer extends Frame
        implements WindowListener, ActionListener {

//Die privates

  private String     dname="Textdokument.txt";
  private String                dname2="1,10";
  private Panel                           top;
  private TextArea                eingabeFeld;
  private TextField                     datei;
  private Button                    speichern;
  private PrintWriter            ausgabeDatei;
  private Button                         Test;
  private Panel                        bottom;
  private Button                          Neu;
  private Panel                             z;
  private Button                        About;
  private Button                        Datei;
  private Panel                      settings;
  private TextField                        SG;
  private Button                            G;
  private Button                            K;
  private Color                        Farbe1;
  private Color                        Farbe2;
  private Button                         Help;
  private Button                       kursiv;
  private MenuItem                       ende;
  private MenuItem                   ESchrift;
  private MenuItem                       Eaus;
  private MenuItem                    EDesign;
  private Panel                       Designs;
  private Button                         DRot;
  private Button                       DGruen;
  private Button                        DBlau;
  private Button                        DGelb;
  private Label                      hinweis1;
  private Button                DRueckgaengig;
  private Label                      hinweis2;
  private Label                         leer1;
  private Button                        DRot2;
  private Button                      DGruen2;
  private Button                       DBlau2;
  private Button                       DGelb2;





public static void main(String [] args) {


//Die Einstellungen

    Writer test = new Writer();
    test.setUndecorated(false);     //Einstellung, um das Windows-Fenster zu entfernen.
    test.setSize(900,500);
    test.setVisible(true);
    test.setTitle("Writer");
    test.setBackground(Color.BLUE);
    test.setForeground(Color.BLACK);
    test.setLocation(0,0);
    test.setCursor(HAND_CURSOR);



  }

    //Der Konstruktor

    Writer() {
    makeGui();
    addWindowListener(this);
  }



public void makeGui() {

//Die Panels

    z = new Panel();
    settings = new Panel();
    settings.setLayout(new GridLayout(0,2));
    settings.setVisible(true);
    top = new Panel();
    Designs = new Panel();
    Designs.setVisible(true);
    Designs.setLayout(new FlowLayout(FlowLayout.LEFT));
    Designs.setPreferredSize(new Dimension(300, 100));


//Die Elemente fürs Speichern


    speichern = new Button("Text speichern");
    speichern.setBackground(Color.lightGray);
    top.add(speichern);
    speichern.addActionListener(this);
    datei= new TextField(dname,20);
    datei.setBackground(Color.lightGray);
    top.add(datei);
    add(BorderLayout.NORTH,top);



//Hier die zu definierenden Farben:

 Farbe1 = new Color (128, 255, 255);
 Farbe2 = new Color (0  , 128, 128);



//Das Eingabefeld

    eingabeFeld = new TextArea(10,30);
    add(BorderLayout.CENTER,eingabeFeld);
    eingabeFeld.setBackground(Farbe1);
    eingabeFeld.setForeground(Color.BLACK);
    eingabeFeld.setFont(new Font("Comic Sans MS", Font.PLAIN, 15));



//Einige Zusatz -Buttons, -TextFields, -Menüs und sonstiges


    Test = new Button("Writer schließen");
    top.add(Test);
    add(BorderLayout.SOUTH,top);
    Test.setBackground(Color.lightGray);
    Test.addActionListener(this);



    Neu = new Button("Neu");
    z.add(Neu);
    add(BorderLayout.NORTH,z);
    Neu.setBackground(Color.lightGray);
    Neu.addActionListener(this);


    About = new Button("{about}");
    z.add(About);
    add(BorderLayout.NORTH,z);
    About.setBackground(Color.lightGray);



    G = new Button("GROSSE SCHRIFTGRÖSSE");
    settings.add(G);
    add(BorderLayout.EAST,settings);
    G.setBackground(Color.lightGray);
    G.addActionListener(this);



    K = new Button("kleine schriftgröße");
    settings.add(K);
    add(BorderLayout.EAST,settings);
    K.setBackground(Color.lightGray);
    K.addActionListener(this);



    Help = new Button("Hilfe");
    settings.add(Help);
    add(BorderLayout.EAST,settings);
    Help.setBackground(Color.lightGray);
    Help.addActionListener(this);



    kursiv = new Button("K");
    settings.add(kursiv);
    add(BorderLayout.EAST,settings);
    kursiv.setBackground(Color.lightGray);
    kursiv.addActionListener(this);
    eingabeFeld.setFont(new Font("Comic Sans MS", Font.ITALIC, 10));



    hinweis1 = new Label();
    hinweis1.setText("Stellen Sie die Farbe des Textfeldes ein:");
    Designs.add(hinweis1);
    add(BorderLayout.EAST,Designs);
    hinweis1.setBackground(Color.BLUE);
    hinweis1.setPreferredSize(new Dimension(250, 20));



    DRot = new Button("R");
    Designs.add(DRot);
    add(BorderLayout.EAST,Designs);
    DRot.setBackground(Color.RED);
    DRot.addActionListener(this);
    DRot.setPreferredSize(new Dimension(50, 20));



    DGruen = new Button("G");
    Designs.add(DGruen);
    add(BorderLayout.EAST,Designs);
    DGruen.setBackground(Color.GREEN);
    DGruen.addActionListener(this);
    DGruen.setPreferredSize(new Dimension(50, 20));




    DBlau = new Button("B");
    Designs.add(DBlau);
    add(BorderLayout.EAST,Designs);
    DBlau.setBackground(Color.BLUE);
    DBlau.addActionListener(this);
    DBlau.setPreferredSize(new Dimension(50, 20));




    DGelb = new Button("G");
    Designs.add(DGelb);
    add(BorderLayout.EAST,Designs);
    DGelb.setBackground(Color.YELLOW);
    DGelb.addActionListener(this);
    DGelb.setPreferredSize(new Dimension(50, 20));



    DRueckgaengig = new Button("Rückgängig");
    Designs.add(DRueckgaengig);
    add(BorderLayout.EAST,Designs);
    DRueckgaengig.setBackground(Color.lightGray);
    DRueckgaengig.addActionListener(this);


    leer1 = new Label();
    leer1.setText("_________________________");
    Designs.add(leer1);
    add(BorderLayout.EAST,Designs);
    leer1.setForeground(Color.lightGray);
    leer1.setBackground(Color.BLUE);
    leer1.setPreferredSize(new Dimension(250, 20));



    hinweis2 = new Label();
    hinweis2.setText("Stellen Sie die Farbe des Hintergrundes ein:");
    Designs.add(hinweis2);
    add(BorderLayout.EAST,Designs);
    hinweis2.setBackground(Color.BLUE);
    hinweis2.setPreferredSize(new Dimension(300, 20));



    DRot2 = new Button("R");
    Designs.add(DRot2);
    add(BorderLayout.EAST,Designs);
    DRot2.setBackground(Color.RED);
    DRot2.addActionListener(this);
    DRot2.setPreferredSize(new Dimension(50, 20));



    DGruen2 = new Button("G");
    Designs.add(DGruen2);
    add(BorderLayout.EAST,Designs);
    DGruen2.setBackground(Color.GREEN);
    DGruen2.addActionListener(this);
    DGruen2.setPreferredSize(new Dimension(50, 20));




    DBlau2 = new Button("B");
    Designs.add(DBlau2);
    add(BorderLayout.EAST,Designs);
    DBlau2.setBackground(Color.BLUE);
    DBlau2.addActionListener(this);
    DBlau2.setPreferredSize(new Dimension(50, 20));
	
	
	
	DGelb2 = new Button("G");
	Designs.add(DGelb2);
	add(BorderLayout.EAST,Designs);
	DGelb2.setBackground(Color.YELLOW);
    DGelb2.addActionListener(this);
    DGelb2.setPreferredSize(new Dimension(50, 20));



//Das Menü am oberen Applikationsrand

MenuBar hauptMenue = new MenuBar();
Menu menue1 = new Menu("Datei");
Menu menue2 = new Menu("Programmbedienung");
Menu menue3 = new Menu("Hilfe");
Menu menue4 = new Menu("About");
Menu menue5 = new Menu("Erweiterte Einstellungen");

menue1.add("Öffnen");
menue1.addSeparator();
ende = new MenuItem("Ende");
ende.addActionListener(this);
menue1.add(ende);


menue2.add("Designs");


menue3.add("Hilfe im Eingabefeld");
menue3.addSeparator();
menue3.add("About");
menue3.add("FAQ");
menue3.add("Kontakt");

menue4.add("Version");
menue4.add("Programmierung");

ESchrift = new MenuItem("Schrifteinstellungen einblenden");
ESchrift.addActionListener(this);
menue5.add(ESchrift);
EDesign = new MenuItem("Designeinstellungen einblenden");
EDesign.addActionListener(this);
menue5.add(EDesign);
menue5.addSeparator();
Eaus = new MenuItem("Einstellungen ausblenden");
Eaus.addActionListener(this);
menue5.add(Eaus);



hauptMenue.add(menue1);
hauptMenue.add(menue2);
hauptMenue.add(menue3);
hauptMenue.add(menue5);
hauptMenue.setHelpMenu(menue4);
setMenuBar(hauptMenue);

}

//Die ActionListener

public void actionPerformed(ActionEvent event) {
   if (event.getSource() == speichern) {
     try {
          /* Zuerst wir eine Instanz von Writer gebildet:
             sie schreibt Zeichen in eine Ausgabedatei
             true: neue Daten werden angehängt!

             PrintWriter:zeilenorientierte Ausgabe der Zeichen
             wird vorher erzeugt
          */

          ausgabeDatei = new PrintWriter (new FileWriter(datei.getText(), true));
          ausgabeDatei.print(eingabeFeld.getText() );
          ausgabeDatei.close();
     }
     catch (IOException e) {
          System.err.println("Dateifehler "+e.toString() );
/*-------------------------------------------------------------------
 * Der Aufruf von e.toString() ist unnötig, es reicht, e aufzurufen, die
 * Umwandlung passiert dann automatisch.
 *-------------------------------------------------------------------
 */
          System.exit(1);
     }
   }


else if (event.getSource() == Neu) {
          eingabeFeld.setText("");
}

else if (event.getSource() == Help) {
          eingabeFeld.setText("Hier entsteht der Hilfetext.");

    }

else if (event.getSource() == K) {
          eingabeFeld.setFont (new Font("Comic Sans MS", Font.PLAIN, 15));

    }

else if (event.getSource() == G) {
          eingabeFeld.setFont (new Font("Comic Sans MS", Font.PLAIN, 20));

    }


else if (event.getSource() == kursiv) {
          eingabeFeld.setFont (new Font("Comic Sans MS", Font.ITALIC, 20));

    }

else if (event.getSource() == Test) {
          System.exit(1);

    }

else if (event.getSource() == ende) {
          System.exit(1);
   }
else if (event.getSource() == ESchrift) {
          Designs.setVisible(false);
          add(BorderLayout.EAST,settings);
          settings.setVisible(true);
          validate();
   }


else if (event.getSource() == DRot) {
          eingabeFeld.setBackground(Color.RED);
          hinweis1.setText("Sie haben die Farbe auf Rot geändert.");
   }

else if (event.getSource() == EDesign) {
          settings.setVisible(false);
          Designs.setVisible(true);
          add(BorderLayout.EAST,Designs);
          validate();
   }


else if (event.getSource() == Eaus) {
          settings.setVisible(false);
          Designs.setVisible(false);
   }

else if (event.getSource() == DGruen) {
          eingabeFeld.setBackground(Color.GREEN);
          hinweis1.setText("Sie haben die Farbe auf Grün geändert.");
   }

else if (event.getSource() == DBlau) {
          eingabeFeld.setBackground(Color.BLUE);
          hinweis1.setText("Sie haben die Farbe auf Blau geändert.");
   }

else if (event.getSource() == DGelb) {
          eingabeFeld.setBackground(Color.YELLOW);
          hinweis1.setText("Sie haben die Farbe auf Gelb geändert.");
   }

else if (event.getSource() == DRueckgaengig) {
          eingabeFeld.setBackground(Farbe1);
          hinweis1.setText("Sie haben die Standardfarbe gewählt.");
   }

else if (event.getSource() == DGruen2) {
          setBackground(Color.GREEN);
          hinweis2.setText("Sie haben die Hintergrundfarbe auf Grün geändert.");
		  hinweis2.setBackground(Color.GREEN);
		  hinweis1.setBackground(Color.GREEN);
		  leer1.setBackground(Color.GREEN);
   }

else if (event.getSource() == DBlau2) {
          setBackground(Color.BLUE);
          hinweis2.setText("Sie haben die Hintergrundfarbe auf Blau geändert.");
		  hinweis2.setBackground(Color.BLUE);
		  hinweis1.setBackground(Color.BLUE);
		  leer1.setBackground(Color.BLUE);
   }

else if (event.getSource() == DGelb2) {
          setBackground(Color.YELLOW);
          hinweis2.setText("Sie haben die Hintergrundfarbe auf Gelb geändert.");
		  hinweis2.setBackground(Color.YELLOW);
		  hinweis1.setBackground(Color.YELLOW);
		  leer1.setBackground(Color.YELLOW);
   }


else if (event.getSource() == DRot2) {
          setBackground(Color.RED);
          hinweis2.setText("Sie haben die Hintergrundfarbe auf Rot geändert.");
		  hinweis2.setBackground(Color.RED);
		  hinweis1.setBackground(Color.RED);
		  leer1.setBackground(Color.RED);
   }
  }






public void windowClosing(WindowEvent e) {
  System.exit(0);
}
public void windowOpened(WindowEvent e) { }
public void windowIconified(WindowEvent e) { }
public void windowClosed(WindowEvent e) { }
public void windowDeiconified(WindowEvent e) { }
public void windowActivated(WindowEvent e) { }
public void windowDeactivated(WindowEvent e) { }

} //  class
 

dieta

Top Contributor
Ich hab mir jetzt deinen Quelltext nicht genauer angesehen (viiiel zu laaaang), aber versuch's mal, indem du an das Ende der Farbwechsel-Funktionein repaint() schreibst.
 
G

Guest

Gast
Ja, mein Programm ist ein kleiner Mammut, aber trotzdem weiß ich nich so genau wie man das mit dem repaint() macht.
 

Leroy42

Top Contributor
Und poste in Zukunft nur den relevanten Teil!

Ansonsten verklage ich dich auf Schmerzensgeld wegen
eines, von dir verursachten, Mausradfingers.
 

dieta

Top Contributor
Pfeiltasten sag ich da nur! (Klappt zumindest bei Firefox)
Wenn du am Mittelfinger schon so eine komische Einkerbung hast und dir das gelenk schmerzt, solltest du aufhören...
[edit]Was wohl die Krankenkasse zu "Mausradfingern" sagt...[/edit]
 
G

Guest

Gast
Aufgrund des Mausradfingers poste ich ab jetzt nur den wichtigen Teil. Ich will ja nich überernst wirken, aber trägt jetzt wieder jemand zur Lösung meines Problems bei? :wink:
 
G

Guest

Gast
hinweis1 ist übrigens nur das Label, und das funktioniert.

Aber dasselbe Problem tritt auf, wenn ich einfach nur

repaint();

hinschreib.
 
G

Guest

Gast
Nochmal, hier die wichtigen Ausschnitte, damit sich auch jemand daran rantraut! :noe:

Hier z.B. der Ausschnitt eines Buttons, der die Hintergrundfarbe auf blau ändern soll:

Code:
else if (event.getSource() == DBlau2) {
          setBackground(Color.BLUE);
		  repaint();
                  /////repaint(); funzt net///////
                  hinweis2.setText("Sie haben die Hintergrundfarbe auf Blau geändert.");
		  hinweis2.setBackground(Color.BLUE);
		  hinweis1.setBackground(Color.BLUE);
		  hinweis3.setBackground(Color.BLUE);
		  leer1.setBackground(Color.BLUE);
 
G

Guest

Gast
Der gesamte Hintergrund funzt net, nich die Farbveränderung der Labels und Sonstigem.
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
Fats Waller Farben mixen für den Hintergrund ? Java Basics - Anfänger-Themen 1
Elyt JFrame in den Hintergrund verschieben Java Basics - Anfänger-Themen 3
3 JFrame immer im Hintergrund Java Basics - Anfänger-Themen 1
C JOptionPane tritt manchmal bei Plugin in den Hintergrund Java Basics - Anfänger-Themen 2
P SystemTray: Programm sol im Hintergrund weiter laufen Java Basics - Anfänger-Themen 30
T Wenn JFrame Textfelder Hintergrund Grün dann... (if) Java Basics - Anfänger-Themen 3
J Hintergrund bei einem Schachfeld Java Basics - Anfänger-Themen 1
B Greenscreen (grüner Hintergrund ersetzen mit Bild) Java Basics - Anfänger-Themen 49
N Hintergrund image mit .setContentPane Java Basics - Anfänger-Themen 6
U Website Quelltext auslesen - Javaskripte im Hintergrund? Java Basics - Anfänger-Themen 4
H Funktion in Hintergrund und Vordergrund ausführen Java Basics - Anfänger-Themen 11
J Panel auf Hintergrund Java Basics - Anfänger-Themen 5
M hintergrund in jframe festlegen Java Basics - Anfänger-Themen 4
K Android 2d engine mit fortlaufendem hintergrund Java Basics - Anfänger-Themen 1
H Shell Command, im Hintergrund Java Basics - Anfänger-Themen 2
D Hintergrund jpg auf Panel Java Basics - Anfänger-Themen 3
M Website im Hintergrund laden Java Basics - Anfänger-Themen 5
S Applet-Objekt ist vor dem Hintergrund Java Basics - Anfänger-Themen 11
H JPanel Hintergrund transparent setzen? Java Basics - Anfänger-Themen 10
D Java hintergrund erstellen button positionierung Java Basics - Anfänger-Themen 9
B Funktionen programmieren, die im Hintergrund aktiv sind Java Basics - Anfänger-Themen 2
R Threads GUI über Hintergrund-Thread aktualisieren Java Basics - Anfänger-Themen 6
E JButton Hintergrund / Rahmen entfernen? Java Basics - Anfänger-Themen 4
L Erste Schritte 2 Button und der Hintergrund Java Basics - Anfänger-Themen 9
B Hintergrund ändern Java Basics - Anfänger-Themen 3
K Bild als Hintergrund in einem Swing Fenster Java Basics - Anfänger-Themen 21
I Bild in den Hintergrund Java Basics - Anfänger-Themen 6
D JMenuBar und Hintergrund eines Frames Java Basics - Anfänger-Themen 2
A Hintergrund erstellen Java Basics - Anfänger-Themen 2
G hintergrund wird nicht gezeichnet bei paint() Java Basics - Anfänger-Themen 3
K Hintergrund ändern Java Basics - Anfänger-Themen 5
C Frage für Programm mit Dauerschleife im Hintergrund Java Basics - Anfänger-Themen 11
U Neuling: Hintergrund bewegen Java Basics - Anfänger-Themen 14
I Balken, mit Bild im Hintergrund, zeichen Java Basics - Anfänger-Themen 4
M JMenu im Hintergrund Java Basics - Anfänger-Themen 8
Y Programm im Hintergrund stellen Java Basics - Anfänger-Themen 5
M Frame zeigt Desktop als Hintergrund Java Basics - Anfänger-Themen 2
A JPanel: Zeichnen funktioniert nicht - Nur grauer Hintergrund Java Basics - Anfänger-Themen 9
E Ich will doch nur einen Hintergrund! Java Basics - Anfänger-Themen 8
H KeyListener bei Frame im Hintergrund Java Basics - Anfänger-Themen 3
G Bilder in den Hintergrund eines Applets einfügen Java Basics - Anfänger-Themen 16
B jlist hintergrund Java Basics - Anfänger-Themen 5
G Tastenanschläge aus dem Hintergrund erfassen Java Basics - Anfänger-Themen 3
J rechtecke als hintergrund / thread Java Basics - Anfänger-Themen 4
W Bilder als Hintergrund bei Textfeldern? Java Basics - Anfänger-Themen 2
R Möchte einen anderen Hintergrund, weis nicht wie? Java Basics - Anfänger-Themen 7
J Bild im Hintergrund Java Basics - Anfänger-Themen 8
jacquipre Eine Suchmethode im Hintergrund laufen lassen (Threads?) Java Basics - Anfänger-Themen 12
G Hintergrund verdeckt Buttons Java Basics - Anfänger-Themen 6
P task im hintergrund? Java Basics - Anfänger-Themen 11
U Gekachelter Hintergrund (ehem. JLabel html zuweisen) Java Basics - Anfänger-Themen 7
A Programm in den Hintergrund "verschieben" Java Basics - Anfänger-Themen 4
I Hintergrund in Applikation einbinden Java Basics - Anfänger-Themen 3

Ähnliche Java Themen

Neue Themen


Oben