Файл в URL для шрифта - PullRequest
       2

Файл в URL для шрифта

0 голосов
/ 04 декабря 2011

Я использую URL для импорта шрифта. Но поскольку не во всех случаях будет присутствовать Интернет, и при этом я не хочу загружать файл каждый раз, когда я запускаю программу, я хочу использовать тот же метод использования URL-адреса, но вместо этого указывать на шрифт в том же месте, что и программа.

Вот что я попробовал:

File fontfile = new File("TexasLED.ttf");
File.toURI(fontfile).toURL(fontfile);
URL fontUrl = new URL("fontfile");

Хотя я получаю эту ошибку:

Error: F:\Computer Science\draw.java:250: toURI() in java.io.File cannot be applied to (java.io.File)

Я знаю, что делаю что-то не так. Кто-нибудь знает что и как я мог это исправить?

V2:

Файл fontfile = new File ("TexasLED.ttf"); . Fontfile.toURI () toURL (); URL fontUrl = новый URL ("fontfile");

Ошибка:

java.net.MalformedURLException: no protocol: fontfile

Ответы [ 3 ]

1 голос
/ 04 декабря 2011
File fontfile = new File("TexasLED.ttf");
// sanity check!
System.out.println("fontFile.exists(): " + fontFile.exists());
URL fontURL = fontFile.toURI().toURL();
System.out.println("fontURL: " + fontURL);

EG

import java.io.File;
import java.net.URL;

class WhatIsMyURI {

    public static void main(String[] args) throws Exception {
        File file = new File("WhatIsMyURI.java");
        // sanity check!
        System.out.println("file.exists(): " + file.exists());
        URL url = file.toURI().toURL();
        System.out.println("url: " + url);
    }
}

Выход

file.exists(): true
url: file:/I:/projects/numbered/all/744/WhatIsMyURI.java
Press any key to continue . . .
0 голосов
/ 05 декабря 2011

Я понял, как это сделать сам.Я перетащил файл в свой веб-браузер и получил его для URL:

file:///F:/Computer_Science/TexasLED.ttf"

Так что я просто использовал этот URL в нем, и он работал:

URL fontUrl = new URL("file:///F:/Computer_Science/TexasLED.ttf");

Вместо этого я, вероятно, будупроверьте текущее местоположение и используйте этот файл + в начале.

Спасибо за попытку помочь в любом случае!

0 голосов
/ 04 декабря 2011

Вы можете просто загрузить файл один раз и сделать следующее:

File f = new File("TexasLED.ttf");
if(f.exists()) {
    System.out.println("Already exists on computer");
}
else {
    URL fontURL = f.toURI().toURL();
    //Proceed to download font
}

Это проверяет, существует ли шрифт на вашем компьютере, и только если он этого не делает, пытается загрузить новый. Это действительно единственный безопасный способ сделать это, который я видел.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...