javafx-文件的URI和绝对路径之间的差异

时间:2016-12-16 01:54:14

标签: java image url javafx uri

我想在javafx中使用图像URL的绝对路径。 this为我提供了一种方法。

/**
* This class creates a PacMan GUI that extends the JFrame class. It has a Board (JPanel) and 
* includes a constructor method that sets up the frame and adds a key listener to the board.
*/
import java.awt.*;
import javax.swing.*;
@SuppressWarnings("serial") //takes away yellow lines

public class PacManGUI extends JFrame { 

    // Board panel
    private Board board = new Board();
    JLabel currentScoreLabel = new JLabel("Score: " + Board.score);
    JLabel highScoreLabel = new JLabel("High Score: " + Board.highScore + " by " + Board.initials);

    /**
    * PacMan GUI constructor
    * @param selectedTheme 
    */
    public PacManGUI(String selectedTheme) {

        //1. Setup the GUI
        setSize(620, 675);
        setTitle("PacMan");
        getContentPane().setBackground(Color.BLACK);
        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); //removes the java icons that pop up when running

        add(currentScoreLabel, BorderLayout.PAGE_START);
        currentScoreLabel.setForeground(Color.WHITE);

        add(highScoreLabel, BorderLayout.PAGE_END);
        highScoreLabel.setForeground(Color.WHITE);

        //2. Listen for events on the board and add the board to the GUI
        add(board);
        addKeyListener(board);
        board.setFocusable(true);

        //3. Make GUI visible
        setVisible(true);
    }
}

这些代码生成以下输出:

  

C:\ Users \用户名为myUsername \下载\压缩\ 15Dec \轮廓\ chat3.png   文件:/ C:/Users/myUsername/Downloads/Compressed/15Dec/profile/chat3.png

这两行之间有什么区别?

2 个答案:

答案 0 :(得分:0)

file.toURI()处理特殊字符转换,因此通常调用file.toURI()。toURL()是一个更好的选项,因为它会将例如空格转换为%20,例如,如果文件名是& #34;聊天版3.png"转换为:

文件:/ C:/Users/myUsername/Downloads/Compressed/15Dec/profile/chat%20version3.png

答案 1 :(得分:0)

两行都指向同一个资源文件,它们只是使用不同的语法来实现。

  

C:\ Users \ myUsername \ Downloads \ Compressed \ 15Dec \ profile \ chat3.png

MS-DOS style file path

这是Windows用于标识文件位置的语法。其他操作系统将使用不同的格式(例如Unix使用正斜杠而不是反斜杠)。

  

文件:/ C:/Users/myUsername/Downloads/Compressed/15Dec/profile/chat3.png

Uniform Resource Identifier (URI)。它符合用于标识资源的standard syntax。 URI是标准格式,并不特定于给定的操作系统(它将始终使用正斜杠)。

在这种情况下,URI类型是统一资源定位符(URL),用于标识在提供的路径上通过文件协议访问的资源。 URI的语法是:

  

方案:[// [用户:密码@]主机[:端口]] [?查询] [/]的路径[#片段]

要了解更多信息,请阅读链接的文章。