我想在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
这两行之间有什么区别?
答案 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
这是Windows用于标识文件位置的语法。其他操作系统将使用不同的格式(例如Unix使用正斜杠而不是反斜杠)。
文件:/ C:/Users/myUsername/Downloads/Compressed/15Dec/profile/chat3.png
是Uniform Resource Identifier (URI)。它符合用于标识资源的standard syntax。 URI是标准格式,并不特定于给定的操作系统(它将始终使用正斜杠)。
在这种情况下,URI类型是统一资源定位符(URL),用于标识在提供的路径上通过文件协议访问的资源。 URI的语法是:
方案:[// [用户:密码@]主机[:端口]] [?查询] [/]的路径[#片段]
要了解更多信息,请阅读链接的文章。