# Kreis Rundes Frame



## Developer_X (10. Jan 2009)

HI, ich hab ne Frage an euch, kann irgendjemand von euch ein  kreisrundes Frame programmieren, oder ein Frame extends Graphics erstellen?
Danke schon mal im Voraus


----------



## André Uhres (10. Jan 2009)

```
frame.setUndecorated(true);
frame.addComponentListener(new ComponentAdapter() {
    @Override
    public void componentResized(ComponentEvent evt) {
        int size = Math.min(frame.getWidth(), frame.getHeight());
        Shape shape = new Ellipse2D.Float(0, 0, size, size);
        AWTUtilities.setWindowShape(frame, shape);
    }
});
```


----------



## Developer_X (11. Jan 2009)

Danke!!


----------



## Developer_X (11. Jan 2009)

Aber funzt immer noch nicht:


```
import java.awt.Frame;
import java.awt.Shape;
import java.awt.event.ComponentAdapter;
import java.awt.event.ComponentEvent;
import java.awt.geom.Ellipse2D;

import com.sun.awt.AWTUtilities;

public class TFrame 
{
public static void main(String[]args)
{
final Frame frame = new Frame();
frame.setVisible(true);
frame.setUndecorated(true); 
frame.addComponentListener(new ComponentAdapter() { 
    @Override 
    public void componentResized(ComponentEvent evt) { 
        int size = Math.min(frame.getWidth(), frame.getHeight()); 
        Shape shape = new Ellipse2D.Float(2, 0, size, size); 
        AWTUtilities.setWindowShape(frame, shape); 
    } 
});
}
}
```


----------



## Ariol (11. Jan 2009)

Du darfst setVisible erst am Ende aufrufen:


```
import java.awt.Dimension;
import java.awt.Frame;
import java.awt.Shape;
import java.awt.event.ComponentAdapter;
import java.awt.event.ComponentEvent;
import java.awt.geom.Ellipse2D;

import javax.swing.JButton;
import javax.swing.JFrame;

import com.sun.awt.AWTUtilities;

public class TFrame
{
	public static void main(String[] args)
	{
		final JFrame frame = new JFrame();
//		frame.setVisible(true);
		frame.setUndecorated(true);
		frame.addComponentListener(new ComponentAdapter()
		{
			@Override
			public void componentResized(ComponentEvent evt)
			{
				int size = Math.min(frame.getWidth(), frame.getHeight());
				Shape shape = new Ellipse2D.Float(2, 0, size, size);
				AWTUtilities.setWindowShape(frame, shape);
			}
		});
		frame.add(new JButton("HALLO"));
		frame.setPreferredSize(new Dimension(110,100));
		frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		frame.pack();
		frame.setVisible(true);
	}
}
```


----------



## Fu3L (11. Jan 2009)

Ich hab mal ne etwas davon abweichende Frage:

Woher bekomm ich das Paket com.sun.awt? Ich hab schon Google befragt, da war die Antwort, dass das Paket sehr neu ist und man deswegen das JDK updaten solle. Das hab ich gemacht (version 1.6u11) und Eclipse zeigt mir immernoch an, dass es unbekannt ist und (um auszuschließen, dass es an Eclipse liegt) im src-ordner ist das Paket auch nciht mit drin  :?


----------



## André Uhres (11. Jan 2009)

In 1.6.0_10 ist es drin, ohne Quellcode (Update 11 hab ich zur Zeit nicht).


----------



## diggaa1984 (11. Jan 2009)

is da sn hack das in an den component-listener zu hängen, is das "state-of-the-art"?!


----------



## Fu3L (12. Jan 2009)

mhh, wenn ichs ohne Eclipse kompiliere klappts (bis auf die Warnungen, dass es vllt in Zukunft mal wieder entfernt wird^^).... Kanns sein, dass Eclipse nicht "gemerkt" hat, dass ich nen anderen Compiler verwende? (Die Vermutung hatte ich gestern schon und hab das alte JDK innen Papierkorb verschoben und trotzdem kompiliert Eclipse andere Klassen noch, also kanns da eigentlich nciht dran liegen...)


----------



## André Uhres (12. Jan 2009)

diggaa1984 hat gesagt.:
			
		

> is da sn hack das in an den component-listener zu hängen, is das "state-of-the-art"?!


Kein hack  :shock: , das ist "state-of-the-art"  :###
http://java.sun.com/developer/technicalArticles/GUI/translucent_shaped_windows/


----------



## Guest (12. Jan 2009)

Hab da auch was gemacht: http://mac-systems.de/circlescroller/launch.jnlp


----------



## Steven Hachel (20. Jan 2009)

Na endlich ist auch sowas mit Java möglich.


----------



## André Uhres (20. Jan 2009)

Braucht leider fast niemand.


----------



## Fu3L (20. Jan 2009)

Das direkt nciht, aber die damit verbundene Transparenz von Fenstern ist recht ansehnlich....


----------



## Wildcard (20. Jan 2009)

Steven Hachel hat gesagt.:
			
		

> Na endlich ist auch sowas mit Java möglich.


Geht schon seit Jahren mit Java -> SWT


----------



## X5-599 (29. Jan 2009)

Fu3L hat gesagt.:
			
		

> mhh, wenn ichs ohne Eclipse kompiliere klappts (bis auf die Warnungen, dass es vllt in Zukunft mal wieder entfernt wird^^).... Kanns sein, dass Eclipse nicht "gemerkt" hat, dass ich nen anderen Compiler verwende? (Die Vermutung hatte ich gestern schon und hab das alte JDK innen Papierkorb verschoben und trotzdem kompiliert Eclipse andere Klassen noch, also kanns da eigentlich nciht dran liegen...)




hi,

also soweit ich weiss hat das kompillieren mittels eclipse "save" nichts mit einem evtl vorhandenen javac compiler zu tun. zumindest nicht mit eclipse standard einstellungen. weiss jemand, ob man eclipse beibringen kann den javac aus einem jdk zu benutzen anstelle seines eigenen compilers? -tät mich mal interessieren...

gruß,
michael

p.s. alle angaben/behauptungen ohne gewähr


----------



## Fu3L (29. Jan 2009)

Jo, habs mitlerweile auch rausgekriegt. Weiß zwar nicht mehr wie ichs gemacht hab, aber ich glaub ich hab unter "run as" "run" ausgewählt und da anstatt der Standart JRE das JDK ausgewählt. Bin mir aber ehrlich gesagt nicht mehr sicher...


----------

