next up previous contents
Nächste Seite: Die Layoutmanager Aufwärts: Die Komponenten Vorherige Seite: Window   Inhalt


Filedialog

Abbildung 2.28: Beispielprogramm mit einem Filedialog Element.
filedialog.eps

Ein Filedialog ist eine vorbereitete Komponente, die auf jedem Rechner mit graphischer Oberfläche existiert. Unter JAPI wird die, zu dem System, vorhandene Fileselectorbox aufgerufen, um auf jedem Rechner das Look and Feel zu erhalten. Das folgende Beispiel bindet an zwei Menupunkte ''Open'' und ''Save'', den Aufruf eines Filedialogs:


    /* Example filedialog.c */

    :
    frame    = j_frame("Filedialog Demo");
    menubar  = j_menubar(frame);
    file     = j_menu(menubar,"File");
    open     = j_menuitem(file,"Open");
    save     = j_menuitem(file,"Save");
    quit     = j_menuitem(file,"Quit");
        
    j_show(frame);
    
    while(1)
    {            
        obj=j_nextaction();
        
        if(obj==open)
        {
            j_filedialog(frame,"Open File","..",filename);
            printf("Open File '%s'\n",filename);
        }

        if(obj==save)
        {
            j_filedialog(frame,"Save File",".",filename);
            printf("Save File '%s'\n",filename);
        }
             
        :
    }
    :       
   

Ein Filedialog wird mit der Funktion:


    j_filedialog(frame,"Open File","..",filename);

erzeugt und dargestellt. Der Programmablauf unterbricht an dieser Stelle, bis von Benutzer eine entsprechende Eingabe gemacht wurde. Wurde ein Filename angewählt oder eingegeben, so wird dieser zurückgegeben. Die Funktion erwartet als 4. Argument eine Stringvariable, in die der Filename eingetragen wird. Diese Variable muß ausreichend groß sein, um den Filenamen aufnehmen zu können. Wird kein File ausgewählt, oder der Cancel Button angewählt, so wird ein leerer String zurückgegeben.

Zu beachten ist, daß der Filedialog auf derselben Maschine erzeugt wird, auf der auch der JAPI-Server läuft. Es können somit nur auf Files zugegriffen werden, auf die diese Maschine auch Zugriff hat. Ist kein gemeinsames Filesystem vorhanden, so kann dies zu Schwierigkeiten führen. Eine Lösung wäre einen eigenen Fileselector zu schreiben, der dann auf der Applikationsebene läuft. Dann ist aber auch das Look and Feel beim Teufel.


next up previous contents
Nächste Seite: Die Layoutmanager Aufwärts: Die Komponenten Vorherige Seite: Window   Inhalt
Merten Joost 2003-02-26