# Bild



## Guest (28. Nov 2006)

Hi!!!
Ich hab ein Bild als _image_ definiert. Ich kann dieses Bild auch als Icon verwenden. Nun zu meiner Frage: Gibt es eine Methode, das Bild als Hintergrund z.B. eines Buttons oder einer TextArea zu nehmen? 


thx, Gast  :wink:


----------



## siba (28. Nov 2006)

Ich denke dieses Problem läßt sich auch sehr gut mit CSS lösen. Versuchs mal mit dem background-image und dem folgenden Link http://de.selfhtml.org/navigation/css.htm#hintergrund .


----------



## Guest (28. Nov 2006)

Ich will aber ein Image auf meiner Festplatte, nicht im Internet verwenden.


----------



## Leroy42 (28. Nov 2006)

siba hat gesagt.:
			
		

> Ich denke dieses Problem läßt sich auch sehr gut mit CSS lösen



Was hat denn jetzt CSS mit Java zu tun?  :shock:


----------



## Guest (28. Nov 2006)

Das is doch javascript, oder???  :shock: 
_selfhtml_ und so...

Man sollte ein riesiges Projekt starten, das jedem, der irgendwie programmiert, klarmacht, dass javascript _*N I C H T*_ java is...  :wink:


----------



## Leroy42 (28. Nov 2006)

Der Text der Originalposters weist doch nirgendwo
auf JavaScript hin; im Gegenteil: Begriffe wie
Icon, Button oder TextArea weisen doch auf Java hin.


----------



## Guest (28. Nov 2006)

Neee, ich mein die Antwort von seba.


----------



## Guest (28. Nov 2006)

Kann mir jetzt jemand sagen, wie ich das mach?


----------



## siba (28. Nov 2006)

Leroy42 hat gesagt.:
			
		

> siba hat gesagt.:
> 
> 
> 
> ...



Ich wollte nur helfen !  :wink: Warum soll man Problem kompliziert lösen, wenn man es auch einfach haben kann? Oder
habe ich irgendwie die Frage nicht richtig verstanden?


----------



## siba (28. Nov 2006)

Leroy42 hat gesagt.:
			
		

> Der Text der Originalposters weist doch nirgendwo
> auf JavaScript hin; im Gegenteil: Begriffe wie
> Icon, Button oder TextArea weisen doch auf Java hin.



Diese Begriffe weisen eigentlich auf HTML hin  :wink: ! Deswegen auch meine Antwort! Aber nicht für ungut!


----------



## Leroy42 (28. Nov 2006)

Anonymous hat gesagt.:
			
		

> Kann mir jetzt jemand sagen, wie ich das mach?



Versuch's mal im AWT/Swing-Forum.

Oder such' mal in diesem Forum. Soweit ich mich erinnere
kommt fast jede Woche dieselbe Frage (Ich persönlich fühle
mich hierfür nicht berufen   )


----------



## Guest (29. Nov 2006)

Ich hab jetzt über ne Stunde gesucht und nix gefunden.


----------



## Leroy42 (29. Nov 2006)

Leroy42 hat gesagt.:
			
		

> Versuch's mal im AWT/Swing-Forum.


----------



## Roar (29. Nov 2006)

Leroy42 hat gesagt.:
			
		

> Leroy42 hat gesagt.:
> 
> 
> 
> > Versuch's mal im AWT/Swing-Forum.


soll das anstiftung zum doppelposten werden oder was :?:


----------



## Guest (29. Nov 2006)

Gast hat gesagt.:
			
		

> Ich hab jetzt über ne Stunde gesucht und nix gefunden.



Na toll, im AWT-Forum find ich au nix.
    :bloed:


----------



## a cup of java (29. Nov 2006)

Ja natürlich gibt es diese Möglichkeit (vielleicht hört sich dann das spamen auf):


```
private ImageIcon ico = new ImageIcon(deinImage);
private JButton btn = new JButton(ico);
```

Jetzt hast einen sogenannten ImageButton.

lg - a cup of java


----------



## a cup of java (29. Nov 2006)

Nochmal dazu --> kannst auch die Funktion setIcon beim Button verwenden bzw. setRolloverSelectedIcon usw. schau dir einfach mal die Doku zu JButton an.


----------



## Guest (29. Nov 2006)

Mein Compiler meldet, er findet die Methode _setIcon_ nicht...


----------



## DocRandom (29. Nov 2006)

..bei welchem Code?
Meine Glaskugel zeigt mir nix an!

mfg
DocRandom


----------



## Guest (29. Nov 2006)

Der Code für meinen Button:


```
vollbild = new Button("Vollbildmodus");
Designs.add(vollbild);
add(BorderLayout.EAST, Designs);
vollbild.addActionListener(this);
vollbild.setIcon(vollbildBild);
```


----------



## DocRandom (29. Nov 2006)

..verwndest jetzt den Button oder den JButton?

mfg
DocRandom


----------



## Guest (29. Nov 2006)

Wie Button, JButton???

Ich verwende diesen Button wie im Beispiel.


----------



## Leroy42 (29. Nov 2006)

```
Button vollbild = new Button("Vollbildmodus");
```


```
JButton vollbild = new JButton("Vollbildmodus");
```
sind zwei paar Schuhe!


----------



## DocRandom (29. Nov 2006)

.nun, der Button aus der *jawa.awt.** Bibliothek kann kein Icon darstellen!
Der JButton aus der *jawax.swing.** Bibliothek hingegen schon

Hierzu würde ich Dir mal die API der einzelnen Componenten empfehlen:
java.awt.Button und  jawax.swing.JButton

mfg
DocRandom


----------



## Guest (29. Nov 2006)

Ja, okee, aber wie kann ich bei einem _*BUTTON*_ ein Image hinzufügen??? :?:

Soll ungefähr so aussehen:







aBer halt kein Applet...


----------



## Guest (29. Nov 2006)

Bei einem JButton meldet er:


```
setIcon(javax.swing.Icon) in javax.swing.AbstractButton cannot
be applied to (java.awt.Image)
     
     vollbild.setIcon(image);
             ^

1 error
```


----------



## Leroy42 (29. Nov 2006)

Einem Button eben gar nicht.

Die AWT-Komponenten bieten eben nur das an,
was auf jedem BS nativ zur Verfügung steht.


----------



## Leroy42 (29. Nov 2006)

```
public void setIcon(Icon defaultIcon)
```

Ein Image ist nun mal kein Icon.


----------



## DocRandom (29. Nov 2006)

Anonymous hat gesagt.:
			
		

> Bei einem JButton meldet er:
> 
> 
> ```
> ...



..tjo, jetzt wäre es gut wenn man / frau etwas englisch könnte! 

Aber die Meldung besagt frei übersetzt:
*Bitte verwenden Sie kein Image aus der Swing-Bibliothek für eine AWT-Komponente! *

..also liegt der Fehler bei Dir, bzw. Deinem Programm und nicht an Java, oder sonst wen!

mfg
DocRandom


----------



## Illuvatar (29. Nov 2006)

Was ist hier denn los? Der Thread läuft irgendwie leicht aus dem Ruder...

@OP:
a) Es stimmt, java.awt.Button kann kein Bild darstellen. Das könntest du entweder über eine Subklasse selbst implementieren, oder besser javax.swing.JButton verwenden.
b) Wenn du den JButton verwendest, solltest du auch den Rest des Programms auf Swing umstellen. FAQ: Warum AWT und Swing nicht mischen?; Was Swing ist, findest du zum Beispiel hier
c) Für die setIcon-Methode von JButton benötigst du ein javax.swing.Icon, du hast aber ein java.awt.Image. Ein javax.swing.ImageIcon fungiert hier als Wrapperklasse. Verwende einfach "new ImageIcon(image)". SIehe auch hier.


----------



## Guest (29. Nov 2006)

okee, das mit dem ImageButton klappt jetzt, aber das mit dem _RolloverSelectedIcon_ kapier ich noch nich...
Da sollte sich doch eigentlich das Image verändern, wenn die maus den Button berührt. Ich kann zwar compilieren, passieren tut aber nix...  ???:L

Oder soll da was anderes passieren???


----------



## Guest (30. Nov 2006)

naja, das is ja au egal, was mich jetzt eigentlich mehr interessiert, is, wie man ein Bild anstatt auf nen Button in den Hintergrund packt und es mit nem ActionListener versieht...  :bahnhof:  ???:L

Ich will in meinem Prog vielleich n menü aus ner leiste mit buttons drauf einbauen, ungefähr so:


llllllllllllllllllllllllllllllllllllllllllllll
llllllllllllllllllllllllllllllllllllllllllllll
llllllllbutton1lllllllllllllllllllll                              
llllllllllllllllllllllllllllllllllllllllllllll                                                                                       
llllllllllllllllllllllllllllllllllllllllllllll                                                                                                                                                                                                                                                                                                                                                           
llllllllllllllllllllllllllllllllllllllllllllll                                                                                           
llllllllllllllllllllllllllllllllllllllllllllll
llllllllllllllllllllllllllllllllllllllllllllll
llllllllllllllllllllllllllllllllllllllllllllll
llllllllllllllllllllllllllllllllllllllllllllll
lllllllllbutton2llllllllllllllllllll
llllllllllllllllllllllllllllllllllllllllllllll
llllllllllllllllllllllllllllllllllllllllllllll
llllllllllllllllllllllllllllllllllllllllllllll
llllllllllllllllllllllllllllllllllllllllllllll
llllllllllllllllllllllllllllllllllllllllllllll
llllllllllllllllllllllllllllllllllllllllllllll
llllllllllllllllllllllllllllllllllllllllllllll
llllllllllllllllllllllllllllllllllllllllllllll
llllllllllllllllllllllllllllllllllllllllllllll
llllllllllllllllllllllllllllllllllllllllllllll
lllllllllllllllllllllllllllllllllllllllllll
lllllllllllllllllllllllllllllllllllllll
lllllllllllllllllllllllllllll
lllllllll




Vielleicht so???  :wink:


----------



## a cup of java (30. Nov 2006)

Oh mein Gott ich kapier bei deinen Fragen echt die Hälfte nicht  :bahnhof: . Wie schon zehn mal erwähnt wurde --> Poste Code, formuliere deine Fragenstellung etwas genauer  :meld: .

setRolloverSelectedIcon wird nichts machen wenn du rolloverEnabled nicht auf true setzt.  :noe: 

Zu deiner zweiten Frage: du willst ein Bild als Hintergrund deiner Anwendung haben? Auf diesem Hintergrund liegen z.B. zehn Buttons? Und das Hintergrundbild soll auf eine Action warten?  ???:L 

Was für ne Action soll das sein und welchen Grund soll es haben das ein Hintergrundbild auf eine Action hört. Bitte um genaueres spezifizieren, dann kann man auch schneller helfen.  :!: 

lg - a cup of java


----------



## Guest (30. Nov 2006)

1. Ich mein, das mein prog n bissle "designt" is, bzw. dass im hintergrund so n bild von z.B. ner spalte liegt und im vordergrund ein paar buttons sind, die "anklickbar" sind.
Und dass nich nur ne farbe im hintergrund liegt.

2. Neeee, die buttons sollen auf ne action warten, das is soweit au einfach, ich will bloß n bild in den hintergrund kriegen...
ja, habs falsch formuliert...   

3. also, etwas quelltext hab ich nich, dafür n RIESEN prog:
es is noch net fertig, ziemlich viel funzt net, is net ausgereift oder inakzeptabel, also, der Text:



```
/* JWriter 1.0, made by Jan, (c) 2006, this product is official freeware, 
German Edition */


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


public class Writer extends Frame
        implements WindowListener, ActionListener, KeyListener, MouseListener {

//Die privates

  private String     dname="Textdokument.txt";
  private String                dname2="1,10";
  private String       dname3="Sicherung.txt";
  private Panel                           top;
  private JTextArea               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 Color                        Farbe3;
  private Color                          Rot1;
  private Color                          Rot2;
  private Color                          Rot3;
  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;
  private Label                      hinweis3;
  private Button                        DRot3;
  private Button                      DGruen3;
  private Button                       DBlau3;
  private Button                       DGelb3;
  private Button                    DSchwarz3;
  private MenuItem                      about;
  private MenuItem             Programmierung;
  private MenuItem                    oeffnen;
  private boolean          isModified = false;
  int                              buchstaben;
  int                             woerter = 0;
  int                             dieEins = 1;
  int                                ergebnis;
  private Label                      hinweis4;
  private TextField                designFeld;
  private JButton                      Frage1;
  private Label                         leer2;
  private ImageIcon                      ques;
  private JLabel                   anschlaege;


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("JWriter");
    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, 300));

//Die Elemente fürs Speichern


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

//Die Icons und Bilder

    ImageIcon save = new ImageIcon( "save.gif" );
	ImageIcon ques = new ImageIcon( "question.gif" );



//Hier die zu definierenden Farben:

 Farbe1 = new Color (128, 255, 255);
 Farbe2 = new Color (0  , 128, 128);
 Farbe3 = new Color (130, 240, 240);
 
 //VulcanoDesign
  Rot1 = new Color (184,  52 , 33 );
  Rot2 = new Color (255, 111 , 89 );
  Rot3 = new Color (248, 242 , 31 );



//Das Eingabefeld

    eingabeFeld = new JTextArea(10,30);
    add(BorderLayout.CENTER,eingabeFeld);
    eingabeFeld.setBackground(Farbe1);
    eingabeFeld.setForeground(Color.BLACK);
    eingabeFeld.setFont(new Font("Comic Sans MS", Font.PLAIN, 20));
	eingabeFeld.requestFocus();
	eingabeFeld.addKeyListener(this);
	eingabeFeld.addMouseListener(this);


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

    String filename = "icon.gif";
    Image image = Toolkit.getDefaultToolkit().getImage( filename );
    setIconImage  ( image );
	


    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);
	About.addActionListener(this);



    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);



    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));
	
	
	
	hinweis3 = new Label();
    hinweis3.setText("Stellen Sie die Farbe der Schrift ein:");
    Designs.add(hinweis3);
    add(BorderLayout.EAST,Designs);
    hinweis3.setBackground(Color.BLUE);
    hinweis3.setPreferredSize(new Dimension(300, 20));
	
	
	
	DRot3 = new Button("R");
    Designs.add(DRot3);
    add(BorderLayout.EAST,Designs);
    DRot3.setBackground(Color.RED);
    DRot3.addActionListener(this);
    DRot3.setPreferredSize(new Dimension(50, 20));



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




    DBlau3 = new Button("B");
    Designs.add(DBlau3);
    add(BorderLayout.EAST,Designs);
    DBlau3.setBackground(Color.BLUE);
    DBlau3.addActionListener(this);
    DBlau3.setPreferredSize(new Dimension(50, 20));
	
	
	
	
	DGelb3 = new Button("G");
	Designs.add(DGelb3);
	add(BorderLayout.EAST,Designs);
	DGelb3.setBackground(Color.YELLOW);
    DGelb3.addActionListener(this);
    DGelb3.setPreferredSize(new Dimension(50, 20));
	
	
	
    DSchwarz3 = new Button("S");
	Designs.add(DSchwarz3);
	add(BorderLayout.EAST,Designs);
	DSchwarz3.setBackground(Color.BLACK);
	DSchwarz3.setForeground(Color.WHITE);
    DSchwarz3.addActionListener(this);
    DSchwarz3.setPreferredSize(new Dimension(50, 20));
	
	
	
	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));
	
	
	
	hinweis3 = new Label();
    hinweis3.setText("Die Schriftfarbe ist schwarz.");
    Designs.add(hinweis3);
    add(BorderLayout.EAST,Designs);
    hinweis3.setBackground(Color.BLUE);
    hinweis3.setPreferredSize(new Dimension(300, 20));
	
	
	
	designFeld= new TextField();
    designFeld.setBackground(Color.lightGray);
    Designs.add(designFeld);
    add(BorderLayout.EAST,Designs);
	designFeld.setPreferredSize(new Dimension(20, 20));
	designFeld.addKeyListener(this);
	
	
	
	leer2 = new Label();
    leer2.setText("                  ");
    Designs.add(leer2);
    add(BorderLayout.EAST,Designs);
    leer2.setForeground(Color.lightGray);
    leer2.setBackground(Color.BLUE);
    leer2.setPreferredSize(new Dimension(210, 20));
	
	
	
	Frage1 = new JButton("");
	Designs.add(Frage1);
	add(BorderLayout.EAST,Designs);
    Frage1.addActionListener(this);
    Frage1.setPreferredSize(new Dimension(20, 20));
	Frage1.setIcon(ques);
	
	
	
	anschlaege = new JLabel();
    anschlaege.setText("Anschläge");
    Designs.add(anschlaege);
    add(BorderLayout.EAST,Designs);
    anschlaege.setForeground(Color.lightGray);
    anschlaege.setBackground(Color.BLUE);
    anschlaege.setPreferredSize(new Dimension(210, 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");




oeffnen = new MenuItem("Öffnen");
oeffnen.addActionListener(this);
menue1.add(oeffnen);

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


menue2.add("Designs");



menue3.add("Hilfe im Eingabefeld");
menue3.addSeparator();
about = new MenuItem("About");
about.addActionListener(this);
menue3.add(about);
menue3.add("FAQ");
menue3.add("Kontakt");

menue4.add("Version");
Programmierung = new MenuItem("Programmierung");
Programmierung.addActionListener(this);
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);

}

public void preparedExit() {
   if(isModified) {
	  int answer = JOptionPane.showConfirmDialog(this,
      "Möchten Sie ungesicherte Daten vor dem Beenden noch speichern?",
      "JWriter beenden",
      JOptionPane.YES_NO_CANCEL_OPTION, JOptionPane.QUESTION_MESSAGE);
     
      switch(answer) {
         case JOptionPane.CANCEL_OPTION:
            return; //Rückkehr ins Programm                       
         case JOptionPane.YES_OPTION:
            //Hier Methodenaufruf oder Code für Speichern einfügen.
            System.out.println("Daten wurden gespeichert.");
         case JOptionPane.NO_OPTION:
          //hier braucht nichts stehen, das Programm wird ohne Speichern geschlossen.
      }
   }
                  
   System.exit(0);
}

//Die ActionListener

public void windowClosing(WindowEvent ev) {
    preparedExit();
	
    System.exit(0);
  }

public void mouseEntered(MouseEvent ev) {
 
if (ev.getSource() == datei) { 
    datei.setBackground(Color.YELLOW);
	speichern.setBackground(Color.RED);
  }
  
if (ev.getSource() == speichern) { 
    datei.setBackground(Color.YELLOW);
	speichern.setBackground(Color.RED);
  }
}

public void mouseExited(MouseEvent ev) {

if (ev.getSource() == datei) {
    datei.setBackground(Color.lightGray);
    speichern.setBackground(Color.lightGray);	
  }
  
if (ev.getSource() == speichern) {
    datei.setBackground(Color.lightGray);
    speichern.setBackground(Color.lightGray);	
  }
}  


public void keyReleased(KeyEvent ev)
{
    isModified = true;
	ergebnis = (woerter++);
  
  
 {
if (ev.getKeyCode() == KeyEvent.VK_V && ev.getSource() == designFeld) {
    eingabeFeld.setBackground(Rot1);
	setBackground(Rot2);
	eingabeFeld.setForeground(Rot3);
	JOptionPane.showMessageDialog(this,
    "<html>[b]<u>Vulcano</u>[/b]

Sie haben das Design auf VulcanoDesign eingestellt.</html>",
    "Vulcano",
   JOptionPane.INFORMATION_MESSAGE);
  }
  
if (ev.getKeyCode() == KeyEvent.VK_X && ev.getSource() == designFeld) {
	JOptionPane.showMessageDialog(this,
    "<html>[b]<u>Raffiniert!</u>[/b]

Sie haben das geheime Spiel freigeschaltet!!!</html>",
    "SECRET",
   JOptionPane.WARNING_MESSAGE);
  }
 }
 
if (ev.getKeyCode() == KeyEvent.VK_SPACE && ev.getSource() == eingabeFeld) {

     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(dname3, false));
          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);
     }
 }
}	
  

  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(), false));
          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("JWRITER by Jan");

    }

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() == ESchrift) {
          setSize(900,500);
		  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) {
          setSize(900,500);
		  settings.setVisible(false);
          Designs.setVisible(true);
          add(BorderLayout.EAST,Designs);
          validate();
   }


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

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); 
		  repaint();
          hinweis2.setText("Sie haben die Hintergrundfarbe auf Grün geändert.");
		  hinweis2.setBackground(Color.GREEN);
		  hinweis1.setBackground(Color.GREEN);
		  hinweis3.setBackground(Color.GREEN);
		  leer1.setBackground(Color.GREEN);
   }

else if (event.getSource() == DBlau2) {
          setBackground(Color.BLUE);
		  repaint();
          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);
   }

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


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

else if (event.getSource() == DGruen3) {
          eingabeFeld.setForeground(Color.GREEN);
		  hinweis3.setText("Sie haben die Schriftfarbe auf Grün geändert.");
   }

else if (event.getSource() == DBlau3) {
          eingabeFeld.setForeground(Color.BLUE);
          hinweis3.setText("Sie haben die Schriftfarbe auf Blau geändert.");
   }

else if (event.getSource() == DGelb3) {
          eingabeFeld.setForeground(Color.YELLOW);
          hinweis3.setText("Sie haben die Schriftfarbe auf Gelb geändert.");
  }
  
else if (event.getSource() == DRot3) {
          eingabeFeld.setForeground(Color.RED);
          hinweis3.setText("Sie haben die Schriftfarbe auf Rot geändert.");
  }
  
else if (event.getSource() == DSchwarz3) {
          eingabeFeld.setForeground(Color.BLACK);
          hinweis3.setText("Sie haben die Schriftfarbe auf Schwarz geändert.");
  }
  
else if (event.getSource() == About) {
   JOptionPane.showMessageDialog(this,
   "<html>[b]JWriter Version 1.0[/b]

Programmiert von Jan</html>",
   "Info",
   JOptionPane.INFORMATION_MESSAGE);
  }
  
else if (event.getSource() == Test) {
   preparedExit();
  }
  
else if (event.getSource() == ende) {
   preparedExit();
 }  
  
else if (event.getSource() == Programmierung) {
   JOptionPane.showMessageDialog(this,
   "<html><u>Programmierung</u>

Dieses Programm wurde mit Java geschrieben.</html>",
   "Programmierung",
   JOptionPane.INFORMATION_MESSAGE);
  }
  
else if (event.getSource() == Frage1) {
   JOptionPane.showMessageDialog(this,
   "<html>[b]<u>Designs</u>[/b]

b = blueDesign
v = vulcanoDesign
s =         snowDesign
</html>",
   "Designs",
   JOptionPane.INFORMATION_MESSAGE);
  }
}

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) { }
public void keyTyped(KeyEvent ev) { } 
public void keyPressed(KeyEvent ev) { }
public void mousePressed(MouseEvent ev) { }
public void mouseReleased(MouseEvent ev) { }
public void mouseClicked(MouseEvent ev) { }

} //  class
```



Ich poste Quelltext nich so gern oft, weil dann jeder über meinen 828-Zeiler mäkelt...


----------



## Leroy42 (30. Nov 2006)

Anonymous hat gesagt.:
			
		

> Ich poste Quelltext nich so gern oft, weil dann jeder über meinen 828-Zeiler mäkelt...



Wir mäkeln eher an deiner Ineffizienz herum.

Wieso bist du nicht in der Lage, minimalen Quelltext zu schreiben,
der genau dein Problem trifft um den _Fehler_ darin soweit
einzukreisen, daß du ihn posten kannst?  :shock: 

Was zum Beispiel haben Dutzende von Anweisungen wie

```
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); 
   About.addActionListener(this);
```

denn überhaupt mit deinem Problem zu tun?  :autsch: 

*Ein* Testframe mit *einem* Button würde doch 
vollkommen ausreichen um zu veranschaulichen
was du willst und was passiert.


----------



## Guest (30. Nov 2006)

Tja, okee, ein Beispiel:



```
Test = new JPanel

//Hier soll ein Bild in den Hintergrund des Panels.
    

button = new JButton("Here goes the text");
Test.add(button);
add(BorderLayout.CENTER, Test);
button.addActionListener(this);

//Der Button soll auf das Panel, vor das Bild und interaktiv sein.
```



So besser?  :wink:



Meine Frage:

 :?: *WIE BEKOMME ICH EIN GIF IN DEN HINTERGRUND EINES PANELS???* :?:


----------



## Wildcard (30. Nov 2006)

Anonymous hat gesagt.:
			
		

> :?: *WIE BEKOMME ICH EIN GIF IN DEN HINTERGRUND EINES PANELS???* :?:


http://www.java-forum.org/de/viewtopic.php?t=39328&postdays=0&postorder=asc&start=0


----------



## Guest (30. Nov 2006)

Ich kann jetzt den Hintergrund eines Labels setzen, okay, aber wie geht das mit dem Panel???


----------



## Wildcard (30. Nov 2006)

Setz ein JLabel auf das Panel oder zeichne das Bild in paintComponent.


----------



## Guest (30. Nov 2006)

Du meinst über das gesamte Panel ein Label?


----------



## Wildcard (30. Nov 2006)

Klar. warum nicht


----------



## Leroy42 (30. Nov 2006)

Wenn dir Wildcard's Link nicht weitergeholfen hat,
biete ich dir nachwievor(*) an, die Frage mal im
AWT/Swing - Teilforum zu posten. 

(*) Und *ja*! Ich fordere Gast hiermit zum Doppelpost auf,
da ich davon ausgehe, daß sich in dem Teilforum Experten tummeln,
die sich hier nicht blicken lassen und ihm/ihr schneller helfen können.

Edit: Schon drei neue Posts während ich antworte?  :shock: 

Ich werde alt; langsam werde ich alt...


----------



## Wildcard (30. Nov 2006)

Leroy42 hat gesagt.:
			
		

> (*) Und *ja*! Ich fordere Gast hiermit zum Doppelpost auf,
> da ich davon ausgehe, daß sich in dem Teilforum Experten tummeln,
> die sich hier nicht blicken lassen und ihm/ihr schneller helfen können.


Naja, die wirklich aktiven Leute hier antworten doch eigentlich in fast jedem Teilforum...


----------



## Guest (30. Nov 2006)

@ Wildcard: Wenn ich übers ganze Panel 1 einziges riesiges Label ziehe, ist dieses einfach nich mehr sichtbar. Oder ist dann das GIF zu klein? Wenn ja, wie bring ich es auf die optimale größe???

@ Leroy42: Okay, ich werds machen.


----------



## Wildcard (30. Nov 2006)

Ich versteh nicht warum du es nicht einfach so machst wie in meinem Codebeispiel.
JLabel in den Hintergrund und JPanel drüber.
Das kannst du sogar 1zu1 übernehmen  :roll:


----------



## Guest (30. Nov 2006)

Ich hab ein Bild jetzt eingefügt, aber wie krieg ichs in den hintergrund???

Das Bild wird bei mir nur soweit angezeigt, bis das nächste Element anfängt...  ???:L


----------



## Guggl (30. Nov 2006)

*push*


----------



## Wildcard (30. Nov 2006)

Da ich dir bereits funktionierenden Quellcode gegeben habe, wüsste ich nicht was dazu noch gesagt werden kann.


----------



## Guest (1. Dez 2006)

So, ich hab alle Buttons, Labels usw. in J*** umgewandelt.
Funktionieren tuts aber au net.

Die Elemente sind mit _setOpaque_ jetzt au transparent, es klappt net!!!  ???:L  ???:L  ???:L 



Weder mit dem JLayeredPane, noch mit setOpaque und Sonstigem.
Ich hab den Beitrag mindestens 10 mal durchgekaut, so langsam bin ich echt verzweifelt...  :### 
 :bahnhof: 


 :?:  :?:  :?:


----------



## Guest (1. Dez 2006)

Vielleicht isses au das JLayeredPane, das probleme macht...

Das funzt nähmlich net so richtig...  ???:L  ???:L  ???:L  ???:L  ???:L  ???:L  ???:L


----------



## Beni (1. Dez 2006)

Also dieser Thread ist irgendwie komisch...

Aber eigentlich benötigt man da nicht viel Code:

```
package forum;

import java.awt.*;

import javax.swing.*;

public class Beispiel{
    public static void main( String[] args ) {
        JFrame frame = new JFrame();
        frame.setDefaultCloseOperation( JFrame.EXIT_ON_CLOSE );
        
        // Ein JLabel als Hintergrund verwenden
        JLabel background = new JLabel( createIcon() );
        frame.setContentPane( background );
        
        // Componenten auf den Hintergrund setzen
        background.setLayout( new GridBagLayout() );
        
        JPanel panel = new JPanel( new GridLayout( 3, 1, 10, 10 ));
        panel.add( new JButton( "A" ));
        panel.add( new JButton( "B" ));
        panel.add( new JButton( "C" ));
        panel.setOpaque( false );
        
        background.add( panel, new GridBagConstraints( 0, 0, 1, 1, 1.0, 1.0,
                GridBagConstraints.CENTER, GridBagConstraints.NONE, 
                new Insets( 5, 5, 5, 5 ), 0, 0 ));
        
        // das ganze Anzeigen
        frame.setSize( 500, 500 );
        frame.setVisible( true );
    }
    
    // Ein Icon herstellen, es ist egal, woher das Icon kommt
    public static Icon createIcon(){
        return new Icon(){
            public int getIconHeight() {
                return 500;
            }

            public int getIconWidth() {
                return 500;
            }

            public void paintIcon( Component c, Graphics g, int x, int y ) {
                Graphics2D g2 = (Graphics2D)g;
                g2.setPaint( new GradientPaint( x, y, Color.RED, x+getIconWidth(), y+getIconHeight(), Color.GREEN ));
                g2.fillRect( x, y, getIconWidth(), getIconHeight() );
            }
        };
    }
}
```


----------



## Wildcard (1. Dez 2006)

huch! Man kann Ein Panel auf ein Label setzen? Das hab ich ja noch nie gesehen  :shock:


----------



## Beni (1. Dez 2006)

All die Swingkomponenten erben von Container, ergo kann man die beliebig kombinieren. Du kannst sogar ein Knopf auf einen anderen Knopf setzen, ist aber mässig sinnvoll


----------



## Wildcard (1. Dez 2006)

Ja, ich hätte nur nicht erwartet das bei den konkreten Komponenten (Label, Button, Table usw.) da auch was sinnvolles rauskommt. Hab ich nie versucht


----------



## Illuvatar (1. Dez 2006)

Naja - was sollte denn rauskommen? Ein T-Rex, der dich auffrisst? :bae: </ot>


----------



## Guest (2. Dez 2006)

geht das wirklich nur so, wie soll ich sagen, "kompliziert", oder gibts da au andere Methoden ein Bild in den hIntergrund zu bekommen?


----------

