Toon posts:

[Java] Map selecteren ipv File

Pagina: 1
Acties:

Verwijderd

Topicstarter
Waarom is Java soms toch zo vervelend! :?
Ik schrijf een applicatie waarmee men eenvoudig een aantal foto's in een mapje kan inlezen en vervolgens moeten ze gemodificeerd worden. De "kern" werkt prima alleen bij het polijsten loop ik tegen een probleem aan.
Ik heb dus een menu optie "open" en logischerwijs opent dit item een FileDialog. Alleen kun je hiermee enkel files selecteren en geen mappen (en ook geen meerdere bestanden ftm). Ik heb dus een FileDialog/FileChooser nodig waarmee ik enkel mapjes kan selecteren. Heeft iemand toevallig een stukkie code bij de hand of een goede hint oid?

  • Mammoth
  • Registratie: April 2002
  • Laatst online: 22-09-2019

Mammoth

I am BIG

Je kan met FileDialog een standaardnaam invoeren. Als je dan in de map staat en op OK drukt, dan kan de directory worden opgehaald.
code:
1
2
3
4
5
6
FileDialog filedialog = new FileDialog( frame , "Selecteer een bestand",
                                            FileDialog.LOAD );
    filedialog.show();
    String filename = filedialog.getFile();
    String directory = filedialog.getDirectory();
..

Met de methode File.isDirectory() kan je zien of een file een map is of niet.
Succes ermee.

There could be only one, too bad it wasn't me


Verwijderd

Topicstarter
Ja dat snap ik. Het punt is dat je dan dus op een foto moet klikken en vervolgens ga je met de directory aan de slag en dat is niet echt gebruikersvriendelijk. Ik zou nou juist graag alleen mapjes zien die kiesbaar zijn! De oplossing die jij aandraagt werkt op zich wel hoor, zo is het nu namelijk...

  • Mammoth
  • Registratie: April 2002
  • Laatst online: 22-09-2019

Mammoth

I am BIG

In je JDK staat ook een src.zip.
Pak de FileDialog.java die daarin staat, en bekijk hem, en verander hem.
Zo heb ik het zelf ook geleerd, en heb ik bepaalde klasses aangepast zodat ik ermee kan werken.
Tip: Zoek erin naar filters en isDirectory().
Succes.

edit:
Misschien kan je even via google rondkijken, je zal niet de enige zijn met deze vraag.

[ Voor 19% gewijzigd door Mammoth op 02-08-2004 17:15 ]

There could be only one, too bad it wasn't me


  • Soultaker
  • Registratie: September 2000
  • Laatst online: 23-05 18:13
Moet het per se met SWT of mag Swing ook? De JFileChooser heef namelijk een DIRECTORIES_ONLY modus waarin je uitsluitend directories kunt selecteren.

(Dat is behalve gebruiksvriendelijker ook beter omdat je zo ook lege directories kunt selecteren, wat niet mogelijk is als je per se een bestand uit de doeldirectory moet selecteren.)

Verwijderd

Topicstarter
Bedankt voor de reactie...
Voor wat betreft het zoeken op google: uiteraard :z
FileFilters werken in dit geval ook niet, immers:
code:
1
public boolean accept(File dir, String name);

En ik was niet van plan om mijn sdk te gaan verbouwen voor een FileDialog (als je extra methodes nodig hebt dan kun je beter een nieuwe overervende class maken ipv in je sdk te gaan rommelen!)

Ik gebruik liever AWT vanwege de herkenbaarheid van de Windows look voor de eindgebruiker, want swing ziet er toch niet uit >:)
Maargoed, JFileChooser lijkt me indd het beste alternatief, want ik ben bang dat ik het met FileDialog niet voor elkaar krijg :|

Soms krijg ik een punthoofd van dit soort, in mijn ogen, ontbrekende functionaliteiten!

  • Amras
  • Registratie: Januari 2003
  • Laatst online: 01-10-2025
Verwijderd schreef op 02 augustus 2004 @ 17:39:
Ik gebruik liever AWT vanwege de herkenbaarheid van de Windows look voor de eindgebruiker, want swing ziet er toch niet uit >:)
Het is gewoon mogelijk om Swing een Windows look te geven, zoek maar eens op google! Zelfs een Windows XP look is mogelijk, dan moet je even deze library downloaden bij JGoodies

  • Soultaker
  • Registratie: September 2000
  • Laatst online: 23-05 18:13
Gebruik dan liever direct SWT, dan lijkt het nog een beetje ergens op. AWT en Swing zijn allebei mislukt mijn mening. Wat een idioot idee dat je allerlei moeite moet doen om een normaal werkende GUI te creeëren. Dat het met Swing mogelijk is, is meer dan niets, maar alle complicaties maken het beslist niet aantrekkelijk.

  • Mammoth
  • Registratie: April 2002
  • Laatst online: 22-09-2019

Mammoth

I am BIG

Het was mijn bedoeling niet om je je sdk te laten veranderen.
Maar je kan een eigen klasse maken die de source van FileDialog als basis heeft.
Trouwens, ik zou ook naar Swing kijken, want die heeft ook een hoop opties, plus verschillende "Look and Feels".
Swing is wel een kwestie van door de zure appel heenbijten, maar dan heb je wel veel meer opties aan de grafische kant.
Ik programmeer zelf in Java, maar vaak de back-end. Ik heb dus niet veel op met de GUI.
Ik hoop dat wanneer het is gelukt, je de dialog source ook met ons wil delen.

edit:
Ik vind persoonlijk dat een programmeertaal niet alleen afgerekend hoeft te worden op de grafische opties. Ik maak regelmatig normaal werkende GUI´s zonder problemen. Pas als je het mooier wil gaan maken is Java onnodig moeilijk.

[ Voor 20% gewijzigd door Mammoth op 03-08-2004 12:08 ]

There could be only one, too bad it wasn't me


Verwijderd

Topicstarter
Ik beschouw mezelf als een "gevorderde hobbyprogrammeur" :+
Ik heb in Java leren programmeren via mijn opleiding en natuurlijk door het zelf veel te doen. Meestal programmeer ik voor websites (dus server-side, de back-end) of bijvoorbeeld interactieve (chat) apps met flash (als GUI), java en xml. De taal zelf heeft voor mij niet zoveel geheimen meer...

Maar keer op keer wanneer ik in java iets met een GUI wil maken begint de boel me al snel te irriteren. Het is toch redelijk logisch dat je een GUI wil opleveren die duidelijk is in het gebruik en ook nog eens lekker oogt. Jullie oplossingen zullen allemaal uiteindelijk wel werken, echter kost het me simpelweg te veel tijd om het e.e.a. naar mijn smaak goed te krijgen. Als ik dan kijk naar bijv. C# (de vergelijking is gauw gemaakt imo) dan is het een kwestie van "dit wil ik daar en klaar" wat betreft de GUI. En in flash ben ik al helemaal gauw klaar (alleen kun je er zo weinig mee en wordt de code altijd een grote bende onoverzichtelijke MEUK!).
Nog zo iets; heb ik netjes een JMenu bovenin het scherm, maar als ik een panel (dynamisch) toevoeg aan mijn GridbackLayout en je klikt vervolgens op het menu, dan gaat het menu ineens onder het panel door!! Het kan aan mij liggen maar dit soort dingen vind ik gewoon bagger! :( Ja ja, gewoon goed neerzetten hoor ik jullie al zeggen, dat is ook zo, maar al die dingetjes bij elkaar opgeteld maken bij mij dat ik uiteindelijk liever voor een microsoft oplossing als C# kies ipv Java. Toch jammer want afgezien van de GUI mogelijkheden vind ik Java een heerlijk taal!!

*de doktor is aan vakantie toe*

  • Soultaker
  • Registratie: September 2000
  • Laatst online: 23-05 18:13
Ik ben het helemaal met je eens, DoktorAnders.

Eventueel kun je nog eens kijken naar SWT; die gebruikte echte native controls. Applicaties die daarin gemaakt zijn vind ik niet direct zo lelijk en vervelend als AWT en Swing controls, maar ik heb er zelf nooit een GUI in geprogrammeerd dus ik kan moeilijk zeggen of het ook voor de ontwikkelaar prettig is.

Verder zou ik om precies de redenen die jij noemt een GUI onder Windows ook liever in .NET implementeren dan in Java.

  • Alarmnummer
  • Registratie: Juli 2001
  • Laatst online: 09-07-2024

Alarmnummer

-= Tja =-

Verwijderd schreef op 03 augustus 2004 @ 13:52:
Als ik dan kijk naar bijv. C# (de vergelijking is gauw gemaakt imo) dan is het een kwestie van "dit wil ik daar en klaar" wat betreft de GUI.
Ik weet niet of je dat zomaar kan zeggen. Ik ben redelijk thuis in Swing en het is imho programmeertechnisch veel geavanceerder dan winforms. Met java werken de meeste componenten met renders en models en alles valt wel te configureren (alhoewel het soms een beetje stroef gaat).
Het kan aan mij liggen maar dit soort dingen vind ik gewoon bagger! :( Ja ja, gewoon goed neerzetten hoor ik jullie al zeggen, dat is ook zo, maar al die dingetjes bij elkaar opgeteld maken bij mij dat ik uiteindelijk liever voor een microsoft oplossing als C# kies ipv Java. Toch jammer want afgezien van de GUI mogelijkheden vind ik Java een heerlijk taal!!
Meer oefening denk ik. Ik heb al redelijk gecompliceerde dynamische gui`s in elkaar gezet en geen problemen ondervonden. Het is maar net hoe goed je in Swing thuis bent.

Verwijderd

Topicstarter
Alarmnummer schreef op 03 augustus 2004 @ 16:10:
[...]

(alhoewel het soms een beetje stroef gaat).


[...]

Meer oefening denk ik. Ik heb al redelijk gecompliceerde dynamische gui`s in elkaar gezet en geen problemen ondervonden. Het is maar net hoe goed je in Swing thuis bent.
Tuurlijk, oefening baart immers kunst ;)
Alleen je geeft het punt zelf al aan: het gaat stroef en het is maar net hoe goed je in Swing (of AWT ftm) thuis bent... De app waar het om gaat bevat een hoop wiskundige berekeningen etc om images te renderen. In mijn testomgeving met commandline input werkt het prachtig. Alleen nu wil even een leuke schil om het geheel heen, zodat het voor een leek makkelijk te bedienen is. En geen 101 knoppen, toeters en bellen, de gebruiker hoeft enkel een mapje te selecteren, een stuk of 6 waardes te selecteren en op "ok" te drukken.
Oftewel, de businesslogic is goed en hier is java uitstekend geschikt voor, echter het "ff snel" een simpele interface bouwen (geen geavanceerde dingetjes) is huilen met de pet op! De mogelijkheden zijn gewoon net te beperkt en dan ben je al snel gedwongen om uren te gaan lopen zoeken, lezen en proberen. En als ik dan vluchtig even naar .NET kijk (c#) dan lijkt het net alsof dat helemaal niet nodig is :Y)

Btw ik bedenk me ineens dat windows folders een .folder extensie hebben. Zou ik die kunnen gebruiken in de FileNameFilter van FileDialog?

  • drm
  • Registratie: Februari 2001
  • Laatst online: 09-06-2025

drm

f0pc0dert

Als het puur om een simpele GUI gaat, zou ik gewoon met Swing aan de gang gaan. Je hebt dan namelijk helemaal niet zo veel reden om per se AWT te gebruiken; look and feel kun je gewoon op "native" instellen en een JFileChooser kan precies wat jij wilt.

http://java.sun.com/j2se/...setFileSelectionMode(int)
http://java.sun.com/j2se/...ser.html#DIRECTORIES_ONLY

Music is the pleasure the human mind experiences from counting without being aware that it is counting
~ Gottfried Leibniz

Pagina: 1