# Button belegen



## DankbarerStudent ;) (31. Mai 2006)

hallo,
sorry schon mal vorweg für die dumme frage, ich raffs grad gar nich  ???:L 
also ich häng grad völlig an den zauberworten meinem actionPerformed button zu sagen das er das ausführen soll was in einer anderen klasse steht, bzw. die klasse "auszuführen".
bitte helft mir geistigen tiefflieger  :bahnhof:


----------



## The_S (31. Mai 2006)

Und wo haperts genau?


```
public class FirstClass implements ActionListener {
...
    private JButton butt = null;
    private SecondClass sec = null;
...
    public FirstClass() {

        sec = new SecondClass("Blup");
        butt = new JButton("Klick mich");
        butt.addActionListener(this);
...
    }
...
    public void actionPerformed(ActionEvent evt) {

        Object source = evt.getSource();
        if (source == butt) {
            sec.showText();
        }
    }
}
```


```
public class SecondClass {

    private String text = null;

    public SecondClass(String text) {

        this.text = text;
    }

    public void showText() {

        System.out.println(text);
    }
}
```


sowas?


----------



## RawBit (31. Mai 2006)

```
jButton1.addActionListener(new ActionListener() {
    public void actionPerformed( ActionEvent evt ) {
        new MeineKlasse(parameter1, parameter2); // Hier halt die Klasse hinschreiben und die Parameter des Konstruktors eintragen wenn er welche hat
    }
}
```


----------



## lhein (31. Mai 2006)

> *Wie stelle ich Fragen*
> 
> Sei genau und informativ bei der Beschreibung deines Problems
> 
> ...


----------



## moormaster (31. Mai 2006)

DankbarerStudent ;) hat gesagt.:
			
		

> hallo,
> sorry schon mal vorweg für die dumme frage, ich raffs grad gar nich  ???:L
> also ich häng grad völlig an den zauberworten meinem actionPerformed button zu sagen das er das ausführen soll was in einer anderen klasse steht, bzw. die klasse "auszuführen".
> bitte helft mir geistigen tiefflieger  :bahnhof:



Wenn du bereits eine Klasse geschrieben hast:

```
public class andereKlasse
 {
  public static void sagHallo()
  {
    System.out.println("hallo ;)");
  }
 }
```

Dann kannst du die darin enthaltene Methode auf diese Weise aufrufen:

```
andereKlasse.sagHallo();
```

Beim Klick auf einen Button:

```
...

 public class ... extends Frame/Applet
 {
  Button b;

  ...

  ...
  {
    // ActionListener beim Button anmelden
    b.addActionListener(
     new ActionListener()
     {
       public void actionPerformed(ActionEvent e)
       {
         // Methode sagHallo aus andereKlasse aufrufen
         andereKlasse.sagHallo();
       }
     }
    );
  }
 }
```

Ist doch eigentlich simpel? 

PS: rückt der code-Tag im BB-Forum immer so komisch ein? Ich musste vor jeden Befehl min. 2 Leerzeichen setzen, damit er die Befehle vom linken Rand wegbekommt.


----------



## DankbarerStudent ;) (31. Mai 2006)

Oh mein Gott so viele Antworten auf einmal, Wahnsinn. Erstmal tausend Dank, ihr seid echt das geilste Javaforum im Netz [schild=1 fontcolor=000000 shadowcolor=C0C0C0 shieldshadow=1]java-forum.org rockt!!!![/schild]
Ich werd das jetzt gleich mal testen und dann nochmal Erfolg oder Misserfolg posten..

erstmal thx at all  :toll:


----------



## DankbarerStudent ;) (31. Mai 2006)

der tiefflieger is wieder da :bahnhof:
so, ergebniss der tests irgendwie noch nich ganz ausgereift   
also ich poste mal meinen code und ´n screenshot von der umgebung:

sshot:



http://www.directupload.net/show/d/714/Dse35jQ2.jpg

klasse frame (der aufruf) :

```
import java.awt.BorderLayout;
import javax.swing.JPanel;
import javax.swing.JFrame;
import javax.swing.event.*;
import javax.swing.*;
import java.awt.event.ActionEvent;
import javax.swing.Action;
import javax.swing.ImageIcon;

public abstract class frame extends JFrame {

	private static final long serialVersionUID = 1L;

	private JPanel jContentPane = null;

	private JButton butt = null;


	public frame() {
		super();
		initialize();
	}

	private void initialize() {
		this.setSize(300, 200);
		this.setContentPane(getJContentPane());
		this.setTitle("test");
	}

	private JPanel getJContentPane() {
		if (jContentPane == null) {
			jContentPane = new JPanel();
			jContentPane.setLayout(new BorderLayout());
			jContentPane.add(getButt(), BorderLayout.CENTER);
		}
		return jContentPane;
	}


	private JButton getButt() {
		if (butt == null) {
			Action action = new AbstractAction(){
			  public void actionPerformed(  ActionEvent e){
				  key.class.getMethods();
			  }
			}
			;
			action.setEnabled(true);
			butt = new JButton();
			butt.setIcon(new ImageIcon("G:/htwm/carPC/pics/play.JPG"));
			butt.setAction(action);
		}
		return butt;
	}

}
```

klasse key ( die Funktion die auch funktioniert )


```
import java.awt.*;
import java.awt.event.*;

public class key {
   private Robot robot;
   
   public key() {
      try {
          robot = new Robot();
      }
      catch(AWTException e) {
      }
         robot.keyPress(KeyEvent.VK_B);
         robot.keyRelease(KeyEvent.VK_B);
   }
   public static void main(String[] args) {
      new key();
   }
}
```

so zum problem nochmal, so wie´s jetzt hier steht bringt er mir beim testen:

IWAV0052E Ausnahmebedingung für Aufrufziel beim Erstellen von frame
java.lang.InstantiationException
	at sun.reflect.InstantiationExceptionConstructorAccessorImpl.newInstance(Unknown Source)
	at java.lang.reflect.Constructor.newInstance(Unknown Source)
	at org.eclipse.ve.internal.java.vce.launcher.remotevm.JFCLauncher$1.run(JFCLauncher.java:59)
	at java.awt.event.InvocationEvent.dispatch(Unknown Source)
	at java.awt.EventQueue.dispatchEvent(Unknown Source)
	at java.awt.EventDispatchThread.pumpOneEventForHierarchy(Unknown Source)
	at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)
	at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
	at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
	at java.awt.EventDispatchThread.run(Unknown Source)

what the fuck mach ich falsch? ich will doch nur ganz salopp gesagt den button mit der funktion belegen.  ???:L 
was sagen die profies dazu???


----------



## L-ectron-X (31. Mai 2006)

Einfaches Beispiel:

```
import java.awt.event.*;
import javax.swing.*;
import java.net.*;

public class Player extends JFrame {
   private JButton button;
   private ImageIcon play, stop;
   public Player(String title) {
      super(title);
      setSize(400, 300);
      setLocationRelativeTo(null);
      setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
      
      try {
         play = new ImageIcon(new URL("http://www.famfamfam.com/lab/icons/silk/icons/control_play_blue.png"));
         stop = new ImageIcon(new URL("http://www.famfamfam.com/lab/icons/silk/icons/control_stop_blue.png"));
      }
      catch(MalformedURLException e) {
         System.out.println("Fehlerhafter URL!");
      }

      button = new JButton(play);
      button.addActionListener(new ActionListener() {
         public void actionPerformed(ActionEvent e) {
            System.out.println(button.getIcon());
            if(button.getIcon() == play) {
               button.setIcon(stop);
               Player.this.setTitle("Player is playing...");
            }

            else if (button.getIcon() == stop) {
               button.setIcon(play);
               Player.this.setTitle("Player is stopped");
            }
         }
      });
      
      add(button);
   }

   public static void main(String[] args) {
      new Player("Player").setVisible(true);
   }
}
```


----------



## Guest (1. Jun 2006)

hey @L-ectron-X den quelltext hab ich sogar verstanden und könnt ihn erklären, find ich gut. ich glaub ich mach fortschritte  :### 
das problem is nur nicht ganz getroffen, ich will so in etwa wie im code von Hobbit_Im_Blutrausch *krasserNaMe* zwei klassen verbinden, also dein hilfreiches codegeschnipsel und ne visuelle klasse. quasi ichdrück den button und der ruft die klasse einmal auf(wegen winampsteuerung). hast du da ne idee?

@moormaster  hat leider nicht funktioniert. da kam bei "addActionListener" und bei "actionPerformed(ActionEvent e)" ein fehler, frag nicht warum, da hängts an meinen wissenskapazitäten  :bahnhof: 

@Hackl bringt den selben fehler wir von moormaster´s code  ???:L 

@Hobbit_Im_Blutrausch ich hab die "FirstClass" mal bischen umrahmt:


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



public class FirstClass extends JFrame implements ActionListener {

    private JButton butt = null;
    private SecondClass sec = null;

    public FirstClass() {
    	super();
        setSize(640, 480);
        setLocationRelativeTo(null);
        setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
        sec = new SecondClass("Blup");
        butt = new JButton("Klick mich");
        butt.addActionListener(this);


    
    }
    public void actionPerformed(ActionEvent evt) {

        Object source = evt.getSource();
        if (source == butt) {
            sec.showText();
        }
    }
}
```

funzt aber nicht, der bringt mir keinen button, also soweit ich das durch Versuch und Irrtum mitgekriegt hab  :?: 

bin anscheinend zu doof zum coden oder es fehlt nur noch ´n klick und dann hab ich´s, nur der kam noch nich  :shock: 
habt ihr noch ´n tip für mich?


----------



## DankbarerStudent ;) (1. Jun 2006)

^       oh sorry, name vergessen..
  I
  I
  I
Der Post is von mir


----------



## The_S (1. Jun 2006)

Anonymous hat gesagt.:
			
		

> @Hobbit_Im_Blutrausch ich hab die "FirstClass" mal bischen umrahmt:
> 
> 
> ```
> ...



Du brauchst noch ein


```
add(butt);
```

in deinem Konstruktor


----------



## moormaster (1. Jun 2006)

Anonymous hat gesagt.:
			
		

> @moormaster  hat leider nicht funktioniert. da kam bei "addActionListener" und bei "actionPerformed(ActionEvent e)" ein fehler, frag nicht warum, da hängts an meinen wissenskapazitäten  :bahnhof:



Wenn du die Fehlermeldung posten würdest, könnte man dir auch sagen. was dabei falsch gelaufen ist


----------



## DankbarerStudent ;) (1. Jun 2006)

@Hobbit_Im_Blutrausch hey jetzt läufts, mal sehen ob ich das auf mein problem ummünzen kann. thx erstmel  :wink:   :applaus: 

@moormaster hab den fehler jetz leider nicht mehr da, aber da kam sowas wie "nicht erreichbar" oder so, muss wohl nur noch´n packet implementieren, das probier ich dann nochmal aus. trotzdem erstmal danke  :toll: 

hoffe ich krieg das jetzt bald hin nächste woche donnerstag ist abgabe und mittwoch hab ich englisch vorprüfung  :shock: 

sees


----------



## DankbarerStudent (2. Jun 2006)

hallo leutz, also mein problem hat wirklich nur noch ´n "klick" gebraucht, auch wenns keinen mehr interessiert poste ich trotzdem mal den vorlagencode:
aufrufklasse:

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



public class frame extends JFrame implements ActionListener {

    private JButton butt = null;
    private key sec = null;

    public frame() {
       super();
        setSize(640, 480);
        setLocationRelativeTo(null);
        setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
        
        butt = new JButton("Klick mich");
        butt.addActionListener(this);
        add(butt);

   
    }
    public void actionPerformed(ActionEvent evt) {
    	sec = new key();
        Object source = evt.getSource();
        if (source == butt) {
            sec.getClass(); 
        }
    }
}
```

funktion:

```
import java.awt.*;
import java.awt.event.*;

public class key {
   private Robot robot;
   
   public key() {
      try {
          robot = new Robot();
      }
      catch(AWTException e) {
      }
         robot.keyPress(KeyEvent.VK_B);
         robot.keyRelease(KeyEvent.VK_B);
   }
   public static void main(String[] args) {
      new key();
   }
}
```

tausend dank erstmal für eire hilfe  [schild=6 fontcolor=000000 shadowcolor=C0C0C0 shieldshadow=1]Ihr seid die Guten!!!!!!!![/schild]

hab die sache jetz mit allen buttons versehen und alle funktionsklassen geschrieben und krieg jetz nen fehler der mir mal wieder so garnichts sagt  :bahnhof: 

_
IWAV0052E Ausnahmebedingung für Aufrufziel beim Erstellen von player
java.lang.reflect.InvocationTargetException
	at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
	at sun.reflect.NativeConstructorAccessorImpl.newInstance(Unknown Source)
	at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(Unknown Source)
	at java.lang.reflect.Constructor.newInstance(Unknown Source)
	at org.eclipse.ve.internal.java.vce.launcher.remotevm.JFCLauncher$1.run(JFCLauncher.java:59)
	at java.awt.event.InvocationEvent.dispatch(Unknown Source)
	at java.awt.EventQueue.dispatchEvent(Unknown Source)
	at java.awt.EventDispatchThread.pumpOneEventForHierarchy(Unknown Source)
	at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)
	at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
	at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
	at java.awt.EventDispatchThread.run(Unknown Source)
Caused by: java.awt.IllegalComponentStateException: contentPane cannot be set to null.
	at javax.swing.JRootPane.setContentPane(Unknown Source)
	at javax.swing.JFrame.setContentPane(Unknown Source)
	at player.<init>(player.java:54)
	... 12 more
_
kann jemand was damit anfangen?

sollte ich da ein neues thema eröffnen?


----------



## L-ectron-X (2. Jun 2006)

> Caused by: java.awt.IllegalComponentStateException: contentPane cannot be set to null.
> at javax.swing.JRootPane.setContentPane(Unknown Source)
> at javax.swing.JFrame.setContentPane(Unknown Source)
> at player.<init>(player.java:54)



Hast du den contenPane irgendwie auf null gesetzt?
Zeig mal den Code von "player"

Wo wir gerade dabei sind: Klassennamen groß, Methoden- und Variablennamen klein und Konstanten komplett groß schreiben.


----------



## DankbarerStudent ;) (2. Jun 2006)

thx da kuck ich doch gleich mal..
danke für den tip mal sehn ob ich das dann auch richtig umsetzen kann  ???:L 
der code:

```
import java.awt.event.*;
import javax.swing.*;
import java.awt.Dimension;
import java.awt.Toolkit;
import javax.swing.JButton;
import javax.swing.JLabel;
import java.lang.*;
import java.awt.*;


public class player extends JFrame implements ActionListener {

    
    private JButton play = null;
    private JButton stop = null;
    private JButton ff = null;
    private JButton rr = null;
    private JButton next = null;
    private JButton back = null;
    private JButton pl1 = null;
    private JButton pl2 = null;
    private JButton pl3 = null;
    private JButton pl4 = null;
    private JButton visual = null;
	private JLabel bg = null;
	
    private play sec = null;
    private stop stp = null;
    private ff ffo = null;  //  @jve:decl-index=0:
    private rr rro = null;
    private next nex = null;
    private back bac = null;
    private pl1 pla = null;
    private pl2 plb = null;
    private pl3 plc = null;
    private pl4 pld = null;  //  @jve:decl-index=0:
    private visual vis = null;

	
    
    
    
    


public player() {
          
     super();
        this.setSize(640, 480);
        this.setIconImage(Toolkit.getDefaultToolkit().getImage(getClass().getResource("/pics/audi80cabrio.gif")));
        this.setTitle("°°ooOO^AUDI^OOoo°°");
        this.setContentPane(bg);
        this.setLocationRelativeTo(null);
        this.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
		bg.setIcon(new ImageIcon(getClass().getResource("/pics/Layout_1.jpg")));
		bg.setText("");
		bg = new JLabel();
        
        play = new JButton("");
        play.setIcon(new ImageIcon(getClass().getResource("/pics/play.jpg")));
        play.addActionListener(this);
        add(play);

        stop = new JButton("");
        stop.setIcon(new ImageIcon(getClass().getResource("/pics/stop.jpg")));
        stop.addActionListener(this);
        add(stop);
        
        ff = new JButton("");
        ff.setIcon(new ImageIcon(getClass().getResource("/pics/forward.jpg")));
        ff.addActionListener(this);
        add(ff);
        
        rr = new JButton("");
        rr.setIcon(new ImageIcon(getClass().getResource("/pics/backward.jpg")));
        rr.addActionListener(this);
        add(rr);
        
        next = new JButton("");
        next.setIcon(new ImageIcon(getClass().getResource("/pics/next.jpg")));
        next.addActionListener(this);
        add(next);
        
        back = new JButton("");
        back.setIcon(new ImageIcon(getClass().getResource("/pics/back.jpg")));
        back.addActionListener(this);
        add(back);
        
        pl1 = new JButton("");
        pl1.setIcon(new ImageIcon(getClass().getResource("/pics/PL1.jpg")));
        pl1.addActionListener(this);
        add(pl1);
        
        pl2 = new JButton("");
        pl2.setIcon(new ImageIcon(getClass().getResource("/pics/PL2.jpg")));
        pl2.addActionListener(this);
        add(pl2);
        
        pl3 = new JButton("");
        pl3.setIcon(new ImageIcon(getClass().getResource("/pics/PL3.jpg")));
        pl3.addActionListener(this);
        add(pl3);
        
        pl4 = new JButton("");
        pl4.setIcon(new ImageIcon(getClass().getResource("/pics/PL4.jpg")));
        pl4.addActionListener(this);
        add(pl4);
        
        visual = new JButton("");
        visual.setIcon(new ImageIcon(getClass().getResource("/pics/visual.jpg")));
        visual.addActionListener(this);
        add(visual);
        

        
        
        
    }

		


	public void actionPerformed(ActionEvent evt) {
    	{
    	sec = new play();
        Object source = evt.getSource();
        if (source == play) {
            sec.getClass(); }
        }
    	{
	   stp = new stop();
	   Object source0 = evt.getSource();
	   if (source0 == stop) {
	       stp.getClass(); 
        }   
	   ffo = new ff();
	   Object source1 = evt.getSource();
	   if (source1 == ff) {
		   ffo.getClass(); 
        } 
	   rro = new rr();
	   Object source2 = evt.getSource();
	   if (source2 == rr) {
		   rro.getClass(); 
        } 
	   nex = new next();
	   Object source3 = evt.getSource();
	   if (source3 == next) {
		   nex.getClass(); 
        } 
	   bac = new back();
	   Object source4 = evt.getSource();
	   if (source4 == back) {
		   bac.getClass(); 
        } 
	   pla = new pl1();
	   Object source5 = evt.getSource();
	   if (source5 == pl1) {
		   pla.getClass(); 
        } 
	   plb = new pl2();
	   Object source6 = evt.getSource();
	   if (source6 == pl2) {
		   plb.getClass(); 
        } 
	   plc = new pl3();
	   Object source7 = evt.getSource();
	   if (source7 == pl3) {
		   plc.getClass(); 
        } 
	   pld = new pl4();
	   Object source8 = evt.getSource();
	   if (source8 == pl4) {
		   pld.getClass(); 
        } 
	   vis = new visual();
	   Object source9 = evt.getSource();
	   if (source9 == visual) {
	       vis.getClass(); 
        } 
    }
}
}
```

und wat sachse??


----------



## DankbarerStudent ;) (2. Jun 2006)

meinst du das mit auf null setzen?

```
this.setLocationRelativeTo(null);
```
dachte das bezieht sich auf den ausrichtungspunkt in der ebene???
*confused*


----------



## L-ectron-X (2. Jun 2006)

Nein das meine ich nicht. Diese Zeile ist in Ordnung.
Aber diese Zeile ist Mist.


> ```
> this.setContentPane(bg);
> ```


bg ist doch noch null.

Du musst diese Zeile unter die Instanziierung des JLabels bg setzen.


----------



## DankbarerStudent ;) (2. Jun 2006)

ähhhm tja ok danke, aber wie änder ich das jetzt? tip?


----------



## DankbarerStudent ;) (2. Jun 2006)

ohh sorry nicht weit genug gelesen   

so besser?

```
public player() {
          
     super();
        this.setSize(640, 480);
        this.setIconImage(Toolkit.getDefaultToolkit().getImage(getClass().getResource("/pics/audi80cabrio.gif")));
        this.setTitle("°°ooOO^AUDI^OOoo°°");
        this.setLocationRelativeTo(null);
        this.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
		bg.setIcon(new ImageIcon(getClass().getResource("/pics/Layout_1.jpg")));
		bg.setText("");
		bg = new JLabel();
        this.setContentPane(bg);
```

funzt aber immer noch nich..


----------



## L-ectron-X (2. Jun 2006)

Liest du auch ab und zu mal meine Postings? :wink:

Weil bg zum Zeitpunkt des Zugriffs immer noch null ist.

```
bg = new JLabel(new ImageIcon(getClass().getResource("/pics/Layout_1.jpg")));
      this.setContentPane(bg);
```

Du kannst Methoden eines Objektes erst benutzen, wenn es existiert. Klar?


----------



## Guest (2. Jun 2006)

@L-ectron-X natürlich mach ich das, nur ob meine interpretation dann auch die richtige ist, ist ne andere frage   

naja ähh also ich hab jetz einfach mal copy ´n paste durchgeführt wenn ich dich jetz richtig verstanden hab?

```
public player() {
          
     super();
        this.setSize(640, 480);
        this.setIconImage(Toolkit.getDefaultToolkit().getImage(getClass().getResource("/pics/audi80cabrio.gif")));
        this.setTitle("°°ooOO^AUDI^OOoo°°");
        this.setLocationRelativeTo(null);
        this.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
		bg.setIcon(new ImageIcon(getClass().getResource("/pics/Layout_1.jpg")));
		bg.setText("");
	    bg = new JLabel(new ImageIcon(getClass().getResource("/pics/Layout_1.jpg")));
	    this.setContentPane(bg);
```

aber könnt ich da nich die zeile:

```
bg.setIcon(new ImageIcon(getClass().getResource("/pics/Layout_1.jpg")));
```
weglassen?
naja egal, funzt auf jeden fall trotzdem nich. bin halt ´n blutiger anfänger *schäm*


----------



## L-ectron-X (2. Jun 2006)

Aber lesen kann man auch als blutiger Anfänger...
..du scheinst da wohl ne Ausnahme zu sein... :wink: 


```
public player() { 
          
     super("°°ooOO^AUDI^OOoo°°"); 
     this.setSize(640, 480); 
     this.setIconImage(Toolkit.getDefaultToolkit().getImage(getClass().getResource("/pics/audi80cabrio.gif"))); 
     this.setLocationRelativeTo(null); 
     this.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE); 

     bg = new JLabel(new ImageIcon(getClass().getResource("/pics/Layout_1.jpg"))); 
     this.setContentPane(bg);
```

So sollte das aussehen.
In deinem Code ist bg noch nicht instanziiert, aber du ruftst z.B. schon die setIcon()-Methode darauf auf.
Ergebnis: NullPointerException. Zugriff auf ein nicht existierendes Objekt. Jetzt klar?


----------



## DankbarerStudent ;) (2. Jun 2006)

:idea: *klirrrrrrr* hast den groschen auch fallen hören   
iche nixe kanne lesen, no komprende *fg*

ach L-ectron-X was würd ich nur machen wenns dich nicht gäbe...
aus welcher gegend kommst du? vielleicht kann ich dich ja mal auf´n bier einladen?

wenn ich das proggie jetz noch dazu bewegen kann das es meine buttons auch anzeigt is alles cool...


----------



## Guest (2. Jun 2006)

sag mal L-ectron-X will dich ja nicht nerven mit meinem scheiß aber hast du ne idee warum der mir nicht einen button anzeigt? in der entwicklerperspektive ist mein frame auf fast null minimiert und  buttons seh ich auch da keine...
 ???:L


----------



## DankbarerStudent ;) (2. Jun 2006)

name vergessen, der letzte war von mir


----------



## L-ectron-X (2. Jun 2006)

Wird überhaupt kein Button angezeigt?
Ein JFrame ordnet seine Komponenten standardmäßig mit dem BorderLayout an.
In deinem JFrame ist sonst nichts weiter definiert, woher soll er wissen, wie du deine Komponenten anordnen möchtest? Hast du ne Zeichnung o.ä. wie es am Ende aussehen soll?


----------



## DankbarerStudent (3. Jun 2006)

nee du, der zeigt keinen an, mit dem boarderlayout das dacht ich mir fast, aber da muss ich doch irgendwie die genaue startposition von den buttons wissen, wie krieg ich die am besten raus?
hab ich, hab mal´n layout bild gemacht look:

www.directupload.net/show/d/717/iaPI4jPd.jpg

hilft dir das weiter?


----------



## L-ectron-X (3. Jun 2006)

Mit dem BorderLayout kommst du hier nicht weiter.
Aber mit dem GridLayout, dem TableLayout, dem GridBagLayout oder dem NullLayout.
Kommt darauf an, wie sich die Komponenten verhalten sollen, wenn (falls) du das Fenster in seiner Größe änderst.


----------



## DankbarerStudent ;) (3. Jun 2006)

aha, ok das sagt mir zwar erstmal nicht viel aber mal sehen was sich dazu finden lässt.
das fenster darf nicht geändert werden und muss constant auf 640x480 pixeln bleiben..
hast da vielleicht schon paar schnipsel dazu?


----------



## Guest (3. Jun 2006)

hab grad mal was zu tablelayout gesucht und gefunden:

http://www.java-forum.org/de/viewto...lelayout&sid=b48a627cd477fc19ec29ea10af5fef00

krasse sache, das is mir echt zu heftig, gibts da nich ne simplere lösung?


----------



## L-ectron-X (3. Jun 2006)

Wenn sich das Fenster nicht ändern darf, kannst du auch die Auswahl an möglichen LayoutManagern einengen.
Mit dem NullLayout kannst du absolut positionieren (pixelgenau). Da könntest du alle Labels einem Container hinzufügen.
Ebenso beim GridbagLayout. Aber wenn dir schon TableLayout nicht zusagte, wird dir GridbagLayout erst recht "böhmisch" vorkommen.
Bliebe dann auch noch die Schachtelung von Layouts.


----------



## DankbarerStudent ;) (3. Jun 2006)

Hey L-ectron-X mir kam letzte nacht noch´n spitzeneinfall *g* ich benutz einfach mein eclipse 3.2 für mein layout   
hatte dann natürlich keine ruhe und hab auch direkt schon angefangen, mit dem ergebniss das es zwar auch schon tut was ich will aber die buttons erscheinen erst wenn man mit der maus drüberhoverd. Warum?
hier der code:

```
import java.awt.Frame;
import java.awt.Dimension;
import javax.swing.JButton;
import java.awt.Rectangle;
import java.awt.event.*;
import javax.swing.*;
import java.awt.Dimension;
import java.awt.Toolkit;
import javax.swing.JButton;
import javax.swing.JLabel;
import java.lang.*;
import java.awt.*;
import javax.swing.ImageIcon;
import java.awt.event.KeyEvent;
import java.awt.Point;
import javax.swing.SwingConstants;

public class player extends Frame implements ActionListener {

	private static final long serialVersionUID = 1L;

	private JLabel bg = null;
	
	private JButton play = null;
	private play sec = null;
	
	private JButton stop = null;
	private stop stp = null;
    
    
    
	/**
	 * This is the default constructor
	 */
	public player() {
		super();
		initialize();
	}

	/**
	 * This method initializes this
	 * 
	 * @return void
	 */
	private void initialize() {
		bg = new JLabel();
		bg.setIcon(new ImageIcon(getClass().getResource("/pics/Layout_1.jpg")));
		bg.setEnabled(true);
		bg.setDisplayedMnemonic(KeyEvent.VK_UNDEFINED);
		bg.setLocation(new Point(4, 28));
		bg.setSize(new Dimension(635, 480));
		bg.setVerticalAlignment(SwingConstants.CENTER);
		bg.setVerticalTextPosition(SwingConstants.CENTER);
		bg.setText("");
		bg.setVisible(true);
		this.setLayout(null);
		this.setSize(640, 480);
		this.setResizable(false);
		this.setTitle("°°ooOO^AUDI^OOoo°°");

		this.setVisible(true);
		this.add(bg, null);
		this.add(getPlay(), null);
		this.add(getStop(), null);
	}

	/**
	 * This method initializes play	
	 * 	
	 * @return javax.swing.JButton	
	 */
	private JButton getPlay() {
		if (play == null) {
			play = new JButton();
	        play.setIcon(new ImageIcon(getClass().getResource("/pics/play.jpg")));
	        play.setBounds(new Rectangle(281, 355, 92, 60));
	        play.addActionListener(this);
	        add(play);

		}
		return play;
	}
	public void actionPerformed(ActionEvent evt) {
    	{
    	sec = new play();
        Object source = evt.getSource();
        if (source == play) {
            sec.getClass(); }
        }
    	{
 		   stp = new stop();
 		   Object source0 = evt.getSource();
 		   if (source0 == stop) {
 		       stp.getClass(); 
 	        }   
 		   
}}  //  @jve:decl-index=0:visual-constraint="10,10"

	/**
	 * This method initializes stop	
	 * 	
	 * @return javax.swing.JButton	
	 */
	private JButton getStop() {
		if (stop == null) {
			stop = new JButton();
			stop.setBounds(new Rectangle(394, 359, 79, 52));
	        stop.setIcon(new ImageIcon(getClass().getResource("/pics/stop.jpg")));
	        stop.addActionListener(this);
	        add(stop);
		}
		return stop;
	}

}
```


----------



## L-ectron-X (3. Jun 2006)

Lass mal deine Klasse von JFrame erben statt von Frame.
Und die Hälfte der Anweisungen für dein JLabel _bg_ kannste weghauen. Einige davon haben überhaupt keine Wirkung aufs Label, andere können in einer Anweisung zusammengefasst werden.


----------



## Guest (4. Jun 2006)

hey ich schon wieder   
also ich sag mal mit dem drüberhoovern kann ich leben, aber das problem ist jetzt, dass meine buttons alles mögliche machen aber nicht was sie sollen (also die angegebene tastenkombie weitergeben).
mein "aufrufcode":

```
import java.awt.Frame;
import java.awt.Dimension;
import javax.swing.JButton;
import java.awt.Rectangle;
import java.awt.event.*;
import javax.swing.*;
import java.awt.Dimension;
import java.awt.Toolkit;
import javax.swing.JButton;
import javax.swing.JLabel;
import java.lang.*;
import java.awt.*;
import javax.swing.ImageIcon;
import java.awt.event.KeyEvent;
import java.awt.Point;
import javax.swing.SwingConstants;

public class player extends JFrame implements ActionListener {

	private static final long serialVersionUID = 1L;

	private JLabel bg = null;
	
	private JButton play = null;
	private play sec = null;
	
	private JButton stop = null;
	private stop stp = null;  //  @jve:decl-index=0:

	private JButton ff = null;
	private ff ffo = null;

	private JButton rr = null;
	private rr rro = null;

	private JButton next = null;
	private next nex = null;

	private JButton back = null;
	private back bac = null;

	private JButton pl1 = null;
	private pl1 pla = null;
	
	private JButton pl2 = null;
	private pl2 plb = null;

	private JButton pl3 = null;
	private pl3 plc = null;

	private JButton pl4 = null;
	private pl4 pld = null;

	private JButton visual = null;
	private visual vis = null;
    
    
    
	/**
	 * This is the default constructor
	 */
	public player() {
		super();
		initialize();
	}

	/**
	 * This method initializes this
	 * 
	 * @return void
	 */
	private void initialize() {
		bg = new JLabel();
		bg.setIcon(new ImageIcon(getClass().getResource("/pics/Layout_1.jpg")));
		bg.setEnabled(true);
		bg.setLocation(new Point(4, 28));
		bg.setSize(new Dimension(635, 480));
		bg.setText("");
		bg.setVisible(false);
		this.setLayout(null);
		this.setSize(640, 480);
		this.setResizable(false);
		this.setTitle("°°ooOO^AUDI^OOoo°°");

		this.setVisible(true);
		this.add(bg, null);
		this.add(getPlay(), null);
		this.add(getStop(), null);
		this.add(getFf(), null);
		this.add(getRr(), null);
		this.add(getNext(), null);
		this.add(getBack(), null);
		this.add(getPl1(), null);
		this.add(getPl2(), null);
		this.add(getPl3(), null);
		this.add(getPl4(), null);
		this.add(getVisual(), null);
	}

	/**
	 * This method initializes play	
	 * 	
	 * @return javax.swing.JButton	
	 */
	private JButton getPlay() {
		if (play == null) {
			play = new JButton();
	        play.setIcon(new ImageIcon(getClass().getResource("/pics/play.jpg")));
	        play.setSize(new Dimension(58, 50));
	        play.setRolloverEnabled(true);
	        play.setRolloverIcon(new ImageIcon(getClass().getResource("/pics/play.JPG")));
	        play.setLocation(new Point(322, 408));
	        play.addActionListener(this);
	        add(play);

		}
		return play;
	}
    
  	    
	private JButton getStop() {
		if (stop == null) {
			stop = new JButton();
			stop.setRolloverEnabled(true);
			stop.setLocation(new Point(254, 408));
			stop.setSize(new Dimension(58, 50));
			stop.setRolloverIcon(new ImageIcon(getClass().getResource("/pics/stop.JPG")));
	        stop.setIcon(new ImageIcon(getClass().getResource("/pics/stop.jpg")));
	        stop.addActionListener(this);
	        add(stop);
		}
		return stop;
	}

	/**
	 * This method initializes ff	
	 * 	
	 * @return javax.swing.JButton	
	 */
	private JButton getFf() {
		if (ff == null) {
			ff = new JButton();
			ff.setLocation(new Point(390, 408));
			ff.setRolloverEnabled(true);
			ff.setIcon(new ImageIcon(getClass().getResource("/pics/forward.JPG")));
			ff.setRolloverIcon(new ImageIcon(getClass().getResource("/pics/forward.JPG")));
			ff.setSize(new Dimension(58, 50));
	        ff.addActionListener(this);
	        add(ff);
		}
		return ff;
	}

	/**
	 * This method initializes rr	
	 * 	
	 * @return javax.swing.JButton	
	 */
	private JButton getRr() {
		if (rr == null) {
			rr = new JButton();
			rr.setPreferredSize(new Dimension(58, 50));
			rr.setRolloverIcon(new ImageIcon(getClass().getResource("/pics/backward.JPG")));
			rr.setLocation(new Point(186, 408));
			rr.setSize(new Dimension(58, 50));
			rr.setIcon(new ImageIcon(getClass().getResource("/pics/backward.JPG")));
	        rr.addActionListener(this);
	        add(rr);
		}
		return rr;
	}

	/**
	 * This method initializes next	
	 * 	
	 * @return javax.swing.JButton	
	 */
	private JButton getNext() {
		if (next == null) {
			next = new JButton();
			next.setLocation(new Point(458, 408));
			next.setRolloverIcon(new ImageIcon(getClass().getResource("/pics/next.JPG")));
			next.setIcon(new ImageIcon(getClass().getResource("/pics/next.JPG")));
			next.setSize(new Dimension(58, 50));
	        next.addActionListener(this);
	        add(next);
		}
		return next;
	}

	/**
	 * This method initializes back	
	 * 	
	 * @return javax.swing.JButton	
	 */
	private JButton getBack() {
		if (back == null) {
			back = new JButton();
			back.setRolloverIcon(new ImageIcon(getClass().getResource("/pics/back.JPG")));
			back.setLocation(new Point(119, 408));
			back.setSize(new Dimension(58, 50));
			back.setIcon(new ImageIcon(getClass().getResource("/pics/back.JPG")));
	        back.addActionListener(this);
	        add(back);
		}
		return back;
	}

	/**
	 * This method initializes pl1	
	 * 	
	 * @return javax.swing.JButton	
	 */
	private JButton getPl1() {
		if (pl1 == null) {
			pl1 = new JButton();
			pl1.setLocation(new Point(33, 321));
			pl1.setRolloverIcon(new ImageIcon(getClass().getResource("/pics/PL1.JPG")));
			pl1.setIcon(new ImageIcon(getClass().getResource("/pics/PL1.JPG")));
			pl1.setSize(new Dimension(58, 50));
	        pl1.addActionListener(this);
	        add(pl1);
		}
		return pl1;
	}

	/**
	 * This method initializes pl2	
	 * 	
	 * @return javax.swing.JButton	
	 */
	private JButton getPl2() {
		if (pl2 == null) {
			pl2 = new JButton();
			pl2.setRolloverIcon(new ImageIcon(getClass().getResource("/pics/PL2.JPG")));
			pl2.setLocation(new Point(33, 408));
			pl2.setSize(new Dimension(58, 50));
			pl2.setIcon(new ImageIcon(getClass().getResource("/pics/PL2.JPG")));
	        pl2.addActionListener(this);
	        add(pl2);
		}
		return pl2;
	}

	/**
	 * This method initializes pl3	
	 * 	
	 * @return javax.swing.JButton	
	 */
	private JButton getPl3() {
		if (pl3 == null) {
			pl3 = new JButton();
			pl3.setLocation(new Point(549, 321));
			pl3.setRolloverIcon(new ImageIcon(getClass().getResource("/pics/PL3.JPG")));
			pl3.setIcon(new ImageIcon(getClass().getResource("/pics/PL3.JPG")));
			pl3.setSize(new Dimension(58, 50));
	        pl3.addActionListener(this);
	        add(pl3);
		}
		return pl3;
	}

	/**
	 * This method initializes pl4	
	 * 	
	 * @return javax.swing.JButton	
	 */
	private JButton getPl4() {
		if (pl4 == null) {
			pl4 = new JButton();
			pl4.setRolloverIcon(new ImageIcon(getClass().getResource("/pics/PL4.JPG")));
			pl4.setLocation(new Point(549, 408));
			pl4.setSize(new Dimension(58, 50));
			pl4.setIcon(new ImageIcon(getClass().getResource("/pics/PL4.JPG")));
	        pl4.addActionListener(this);
	        add(pl4);
		}
		return pl4;
	}

	/**
	 * This method initializes visual	
	 * 	
	 * @return javax.swing.JButton	
	 */
	private JButton getVisual() {
		if (visual == null) {
			visual = new JButton();
			visual.setLocation(new Point(212, 321));
			visual.setRolloverIcon(new ImageIcon(getClass().getResource("/pics/visual.JPG")));
			visual.setIcon(new ImageIcon(getClass().getResource("/pics/visual.JPG")));
			visual.setSize(new Dimension(206, 50));
	        visual.addActionListener(this);
	        add(visual);
		}
		return visual;
	}
	public void actionPerformed(ActionEvent evt) {
    	{
    	sec = new play();
        Object source = evt.getSource();
        if (source == play) {
            sec.getClass(); }
        }
    	{
 		   stp = new stop();
 		   Object source0 = evt.getSource();
 		   if (source0 == stop) {
 		       stp.getClass(); 
 	    }   
 	    {
 	 	   ffo = new ff();
 	 	   Object source1 = evt.getSource();
 	 	   if (source1 == ff) {
 	 	       ffo.getClass(); 
 	    }   
 	   	{
  		   rro = new rr();
  		   Object source2 = evt.getSource();
  		   if (source2 == rr) {
  		       rro.getClass(); 
  	    }   
  	   	{
  	   		nex = new next();
  	        Object source3 = evt.getSource();
  	        if (source3 == next) {
  	            nex.getClass(); }
        }
      	{
   		   bac = new back();
   		   Object source4 = evt.getSource();
   		   if (source4 == back) {
   		       bac.getClass(); 
   	    }   
  	    {
  	 	   pla = new pl1();
  	 	   Object source5 = evt.getSource();
  	 	   if (source5 == pl1) {

  	 	       pla.getClass(); 
  	    }   
  	   	{
  		   plb = new pl2();
  		   Object source6 = evt.getSource();
  		   if (source6 == pl2) {
  		       plb.getClass(); 
  	    }	
   	    {
  	 	   plc = new pl3();
  	 	   Object source7 = evt.getSource();
  	 	   if (source7 == pl3) {
  	 	       plc.getClass(); 
  	    }   
  	   	{
  		   pld = new pl4();
  		   Object source8 = evt.getSource();
  		   if (source8 == pl4) {
  		       pld.getClass(); 
  	    }
  	    {
  	 	   vis = new visual();
  	 	   Object source9 = evt.getSource();
  	 	   if (source9 == visual) {
  	 	       vis.getClass(); 
  	    }   
  	    }
  	   	}
   	    }
  	   	}
  	    }
      	}
 	   	}
 	    }
    	}
    	
	}

  
}
```

eine funktion(alle nach dem selben schema):

```
import java.awt.*;
import java.awt.event.*;

public class visual {
   private Robot robot;
   
   public visual() {
      try {
          robot = new Robot();
      }
      catch(AWTException e) {
      }
      robot.keyPress(KeyEvent.VK_SHIFT);
      robot.keyPress(KeyEvent.VK_V);
      robot.keyRelease(KeyEvent.VK_V);
      robot.keyRelease(KeyEvent.VK_SHIFT);
   }
   public static void main(String[] args) {
      new visual();
   }
}
```

ich denk mir mal das problem liegt bei 
	
	
	
	





```
public void actionPerformed(ActionEvent evt) {
```
aber wo?


----------



## RauwlDuke (5. Jun 2006)

Hey L-ectron-X
ich hab mal nen neuen Thread aufgemacht, weil sich ja das problem geklärt hat.
und hab mich gleich mal hier registriert 

schöne pfingsten noch und vielen Dank


----------

