SORU
18 NİSAN 2011, PAZARTESİ


Swing destek seçeneğimiz dosya 7, Windows mu?

Ben sadece bir standart " da eklediDosya açın" yazıyorum küçük bir masaüstü uygulaması için iletişim, JFileChooser entry of the Swing Tutorial dayanarak. Şuna benzeyen bir pencere oluşturma:

screenshot of unwanted/XP-style window

ama şuna benzeyen bir pencere olmasını tercih ederdim:

screenshot of desired/7-style window

Diğer bir deyişle, benim dosya seçici Windows Vista/Windows 7 tarzı değil, Windows XP olmasını istiyorum. Bu Salıncak Olası mı? Eğer öyleyse, nasıl yapılır? (Bu soruyu amacıyla, kodu sadece Windows 7 çalıştıran bilgisayarlar olacak varsayalım.)

CEVAP
28 Mayıs 2011, CUMARTESİ


Bu Java 6'da Hızıyla desteklenen görünmüyor.

Şu anda, bu iletişim kutusunu açmak için bulabildiğim en basit yolu CC ile, Salıncak değildir. CC. FileDialog (javadoc) Bu iletişim kutusunu getirir. Aşağıdaki CC bir değişiklik FileDialog snippet açık kullanmak yerine iletişim kurtarmaktır. Bu sizin için ne arıyorsanız tam olarak değil, ama yardımcı bir sınıf için bu izole ve bunun için sizin sınıf için swt.jar ekleme işlevi olabilir biliyorum.

import org.eclipse.swt.*;
import org.eclipse.swt.widgets.*;

public class SWTFileOpenSnippet {
    public static void main (String [] args) {
        Display display = new Display ();
        Shell shell = new Shell (display);
        // Don't show the shell.
        //shell.open ();  
        FileDialog dialog = new FileDialog (shell, SWT.OPEN | SWT.MULTI);
        String [] filterNames = new String [] {"All Files (*)"};
        String [] filterExtensions = new String [] {"*"};
        String filterPath = "c:\\";
        dialog.setFilterNames (filterNames);
        dialog.setFilterExtensions (filterExtensions);
        dialog.setFilterPath (filterPath);
        dialog.open();
        System.out.println ("Selected files: ");
        String[] selectedFileNames = dialog.getFileNames();
        for(String fileName : selectedFileNames) {
            System.out.println("  "   fileName);
        }
        shell.close();
        while (!shell.isDisposed ()) {
            if (!display.readAndDispatch ()) display.sleep ();
        }
        display.dispose ();
    }
} 

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • A Alkhaldi

    A Alkhaldi

    12 Mayıs 2007
  • psidot

    psidot

    2 Kasım 2006
  • xSammyJoe1

    xSammyJoe1

    19 Temmuz 2011