My own JOptionePane

I

InselBewohner

Gast
Hi,
Ich moeche ein nicht-Modelen Dialog anbieten,
in dem DateienNamen aus einem Ordner in einer liste angezeigt werden und sich der user dann ein datei aussuchen kann.
Bestenfalls würde ich gerne, dass diesee dialog Transparent und in Schwarz ist, und kein OK button Brauch, sondern sowas wie change list:
Meine erste Idee war diese:
Java:
public class ElementChooser extends JOptionPane {

	private static final long serialVersionUID = 1L;

	public ElementChooser(final String[] names) {
		super();
		JList nameList = new JList(names);
		nameList.setBackground(new Color(255,255,255,0));
		nameList.getScrollableTracksViewportHeight();
		nameList.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
		nameList.setLayoutOrientation(JList.VERTICAL);
		nameList.addListSelectionListener(new ListSelectionListener()
		  {
		    public void valueChanged(ListSelectionEvent e)
		    {
		      if (e.getValueIsAdjusting() == false)
		      {
		    	  System.out.println(e.getFirstIndex());
		      }
		      else
		      {
		        System.out.println("value is adjusting");
		      }
		    }
		  });


		
		this.setMessage(nameList);
		this.setBackground(new Color(255,255,255,120));
		this.setMessageType(JOptionPane.PLAIN_MESSAGE); 
		this.setOpaque(false);
		this.setBounds(0,0,200,400);

	}
}
Die Liste wird dem Dialog dann so gegeben:
Java:
File dir = new File("./Wave/");
				// This filter only returns directories
				FileFilter fileFilter = new FileFilter() {
					public boolean accept(File file) {
						return file.getName().toLowerCase(). endsWith("wav");
					}
				};
				File[] files = dir.listFiles(fileFilter); 
				
				String[] names = new String[files.length];
				for (int i = 0; i < files.length; i++) names[i] = files[i].getName();
Aber ich glaube da bin ich auf den falschen Weg. Ausserdem weis ich nicht so recht wie ich das dann als Popup aufrufe, und das am besten positioniert.

Lieben dank
 
I

inselBewohner

Gast
Super antwort!
Also ich glaube ich sollte von meiner Idee abweichen und lieber mit JpopUp arbeiten.
Kannst du mir diesbezueglich weiterhelfen. oder ein tutorial ampfehlen?

lg
 

Michael...

Top Contributor
Tutorials dazu kenne ich keine, aber prinzipiell kann man in so ein JPopupMenu alles mögliche reinstecken, wie von anderen Komponenten gewohnt. Wenn man was anderes als die üblichen MenuItems reinsteckt muss man sich um das schliessen des Menüs selbst kümmern.
In Deinem Fall könntest Du z.B. eine JList verwenden um die Dateinamen anzuzeigen oder aber für jeden Dateinamen ein JMenuItem ins Popup einfügen. Letzteres könnte zu einem etwas längeren Popup führen
 
Ähnliche Java Themen

Ähnliche Java Themen


Oben