# Suche nach Komponente / LaF



## new exception (19. Apr 2010)

Hallo,

ich lese mich gerade in die richtige Gestaltung und Positionierung von Komponenten in Programmen ein und bin dabei auf ein Programm (siehe Anhang) gestoßen. Es sieht zwar aus wie c# /wpf, sollte aber java sein, da es in einem pdf über Swing ist.

Kann mir wer sagen, wie dieses laf bzw. diese Menükomponenten heißen? (Leider steht in diesem pdf keine Quelle....)

Danke


----------



## Tomate_Salat (19. Apr 2010)

An dem Programm-icon lässt sich erschließen, dass es Java ist. Es sieht aus wie die Systemkomponenten.
Über swing sollte das mit 

```
UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());
```

umsetzbar sein oder direkt SWT nutzen.


----------



## new exception (19. Apr 2010)

wie man das laf setzt weiß ich schon, aber was ist das z.b für ein menü?


----------



## Tomate_Salat (19. Apr 2010)

selfmade? Ka. Ich glaube Nebula (oder wie das heist) für SWT kennt ähnliche Komponten die auch in Windows benutzt werden. Sicher dass das rein Swing ist?


----------



## Gast2 (20. Apr 2010)

Wie kommst drauf, dass das ein nebula widget ist???

Du des kann vieles sein, vielleicht ist das L&F auch gekauft. Vielleicht ist es gar kein Swing, sondern wurde im backend mit JSF gemacht und im frontend mit Swing dann dargestellt usw.


----------



## Tomate_Salat (20. Apr 2010)

SirWayne hat gesagt.:
			
		

> Wie kommst drauf, dass das ein nebula widget ist???





Tomate_Salat hat gesagt.:


> Ich glaube Nebula



Überhaupt nicht?! Ich sagte: ich glaube! Ich hatte mir Nebula-Projekt vor längerer Zeit mal grob angeschaut und weis, dass es einige Komponenten bietet, die man aus den Windowskomponenten kennt. Ob es diese Komponenten auch in SWT gibt und diese ggf. nur angepasst wurden ka, ich bin relativ neu in SWT. Also bitte meine Posts richtig lesen ;-)


----------



## Gast2 (20. Apr 2010)

Tomate_Salat hat gesagt.:


> Überhaupt nicht?! Ich sagte: ich glaube! Ich hatte mir Nebula-Projekt vor längerer Zeit mal grob angeschaut und weis, dass es einige Komponenten bietet, die man aus den Windowskomponenten kennt. Ob es diese Komponenten auch in SWT gibt und diese ggf. nur angepasst wurden ka, ich bin relativ neu in SWT. Also bitte meine Posts richtig lesen ;-)



He versteh ich nicht so ganz ???? Die Nebula widget sind doch in SWT/JFace gemacht!!! Des sind einfach nur Erweiterungen zu den anderen vorhandenen Widget...

Die Nebula widget haben nichts mit Windows zu tun ...


----------



## Tomate_Salat (20. Apr 2010)

SirWayne hat gesagt.:


> He versteh ich nicht so ganz ???? Die Nebula widget sind doch in SWT/JFace gemacht!!! Des sind einfach nur Erweiterungen zu den anderen vorhandenen Widget...
> 
> Die Nebula widget haben nichts mit Windows zu tun ...



Wie gesagt: sooo gut kenne ich mich mit SWT (JFace eigentl. [noch] garnicht) und Nebula seehr seehr wenig aus. Dennoch stellt das Nebula-Projekt Widgets die z.B. an die Outlook-Komponenten erinnern oder die Groupboxes von der XP-Ordner-Ansicht. Ob das Projekt auch so eine Toolbar stellt, weis ich nicht, deswegen habe ich geschrieben: >ich glaube< und nicht: >ich weis< ;-)

Mfg

Tomate_Salat


----------



## DStrohma (20. Apr 2010)

Wenn ihr ein geiles L&F wollt, dann nehmt doch Nimbus oder gleich Substance. Wer wirklich visuell anspruchsvolle Anwendungen erstellen will, der kommt da nur schwer dran vorbei 
Falls ihr Substance herunterlädt, dann ladet euch auch das trident library herunter - das ist für die effekte zuständig.

https://substance.dev.java.net/


----------



## Gast2 (21. Apr 2010)

DStrohma hat gesagt.:


> Wenn ihr ein geiles L&F wollt, dann nehmt doch Nimbus oder gleich Substance. Wer wirklich visuell anspruchsvolle Anwendungen erstellen will, der kommt da nur schwer dran vorbei
> Falls ihr Substance herunterlädt, dann ladet euch auch das trident library herunter - das ist für die effekte zuständig.
> 
> https://substance.dev.java.net/



Geschmack ist bekanntlich subjektiv... Mir gefällt am besten das native SystemLookAndFeel und dafür ist  SWT super!!!


----------



## Tomate_Salat (21. Apr 2010)

SirWayne hat gesagt.:


> Geschmack ist bekanntlich subjektiv... Mir gefällt am besten das native SystemLookAndFeel und dafür ist  SWT super!!!



dem schließe ich mich an ;-)


----------



## DStrohma (21. Apr 2010)

interessant :autsch:


----------



## new exception (22. Apr 2010)

substance l&f kenne ich schon, wollte eben wissen, wie das menü gemacht wird.

auch wenn es keiner weiß, danke fürs helfen


----------



## DStrohma (22. Apr 2010)

Ich weiß zwar nicht wie das Ding gemacht ist aber es ist wirklich leicht das nachzubauen, also wenn du ein paar Stunden zeit hast, dann sollte das gehen.
Ist einfach ein Panel mit ein paar Buttons. Der Button mit "Neu" hätte dann eben ein Popup Menü. Eigentlich einfach


----------



## Tomate_Salat (22. Apr 2010)

DStrohma hat gesagt.:


> also wenn du ein paar Stunden zeit hast



Bitte? Du brauchst eigentl. nur 2 Komponenten zu schreiben: die toolbar und die Buttons die darauf sollen. Der Hintergrund ist en Bild...fertig. Bei den Buttons hast du halt noch einen Mouse-Effekt, der dann halt 2 bilder erwartet. Das einzigste was man in relation dazu als zeitraubend vergleich könnte, wäre das Neu-DropDown....aber ein paar Stunden ist dafür übertrieben. Wenn man sich ran hält könnte man das in 1-2 Stunden haben.


----------



## DStrohma (22. Apr 2010)

Zeit is eben relativ. Könnte man auch in einer halben Stunde machen aber wenn man keine Ahnung hat finde ich es nicht verkehrt zu sagen "ein paar Stunden"


----------



## Tomate_Salat (22. Apr 2010)

dann könnteste auch von Jahren sprechen ;-). In solche fällen gehe ich davon aus, dass der Anwender weis, wie man eigene Komponenten nach seinen Wünschen programmiert/designed.


----------



## Gast2 (22. Apr 2010)

So ein DropDown Button ist in Swing gar nicht so einfach...


----------



## Tomate_Salat (22. Apr 2010)

Ausbaufähig, aber ein wirkliches Problem ist es nicht:


```
import java.awt.BorderLayout;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseListener;

import javax.swing.JComponent;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JMenuItem;
import javax.swing.JPopupMenu;
import javax.swing.SwingUtilities;

public class DropDown
	extends JComponent
{
	private JLabel	textLabel;
	private JPopupMenu 	menu;
	
	public DropDown(String title)
    {
		textLabel	= new JLabel(title);		
		
		setLayout(new BorderLayout());
				
		menu		= new JPopupMenu();			
		add(textLabel);
		addMouseListener( listener );
    }
	
	public void addJMenuItem(JMenuItem item)
	{
		menu.add( item );
	}
	
	private MouseListener listener	= new MouseAdapter()
	{
		public void mouseReleased(java.awt.event.MouseEvent e) 
		{
			if(e.isPopupTrigger() || e.getButton() == 1)
			{			
				menu.show(e.getComponent(), textLabel.getX(), getY() + getPreferredSize().height);
			}
		};
	};
	
	public static void main(String[] args)
    {
	    SwingUtilities.invokeLater(new Runnable()
		{
			
			@Override
			public void run()
			{
				JFrame frame	= new JFrame();
			    frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
			    frame.setLayout(null);
			    DropDown drop	= new DropDown("test");
			    drop.setBounds(10, 10, 100, 20);
			    drop.addJMenuItem(new JMenuItem("test"));
			    
			    frame.add(drop);
			    
			    frame.setVisible(true);				
			}
		});
    }
}
```

...und im notfall nimmt man einfach eine MenuBar und passt diese an :autsch:


----------



## Gast2 (24. Apr 2010)

Naja ein DropDown Button ist für mich was anderes schau den mal in SWT/JFace an... Und wenn man eine Komponente generiert sollte Sie auch wiederverwendbar sein...


----------



## Tomate_Salat (24. Apr 2010)

SirWayne hat gesagt.:


> Naja ein DropDown Button ist für mich was anderes schau den mal in SWT/JFace an...


Dann nimmt man halt notfalls soetwas und passt es an :-/. 



> Und wenn man eine Komponente generiert sollte Sie auch wiederverwendbar sein...



diese Komponente ist wiederverwendbar :-/


----------



## Gast2 (24. Apr 2010)

Tomate_Salat hat gesagt.:


> Dann nimmt man halt notfalls soetwas und passt es an :-/.



Wie gesagt das gleiche Verhalten nachzumachen ist in Swing nicht ganz so einfach...


----------

