gpt4 book ai didi

java - 使 Java Swing 在 Windows 中接受用户输入路径(从资源管理器复制粘贴路径)

转载 作者:可可西里 更新时间:2023-11-01 10:07:22 27 4
gpt4 key购买 nike

你能帮我找到解决这个问题的办法吗?

我正在尝试用 Swing 组件制作一个 java GUI

该界面应该接受某个文件的 Windows 路径,并在按下提交按钮后触发该文件的一组函数

现在我已经创建了组件来获取用户输入:

JTextField introducedPath1 = new JTextField(50);

我试图更改默认的 Windows 路径,方法是将资源管理器中的路径复制粘贴到可接受的文件路径中:

File file;
String makeCanonicalPath=introducedPath1.getText().toString();
makeCanonicalPath=makeCanonicalPath.replaceAll("\\", "/");
file = new File(makeCanonicalPath);

但我一直收到这个错误:

Exception in thread "AWT-EventQueue-0" java.util.regex.PatternSyntaxException: Unexpected internal error near index 1

\
^
at java.util.regex.Pattern.error(Unknown Source)
at java.util.regex.Pattern.compile(Unknown Source)
at java.util.regex.Pattern.<init>(Unknown Source)

我认为这是由 Windows 中的默认路径(例如:L:\practice\test)将其“\”解释为转义序列引起的。

任何帮助或建议将不胜感激

最佳答案

使用replaceAll,需要对正则表达式使用java转义,所以

makeCanonicalPath.replaceAll("\\\\", "/");

因为它不是文本搜索替换,而是正则表达式。

如果您想要基于文本的搜索替换,请使用 apache commons string replace ,例如。

此外,一种替代方法是使用 replace() - http://docs.oracle.com/javase/1.4.2/docs/api/java/lang/String.html#replace(char , char) 而不是 replaceAll - 它会在不使用正则表达式的情况下替换所有出现的地方,并且由于您只有一个字符要替换,所以它会起作用。

关于java - 使 Java Swing 在 Windows 中接受用户输入路径(从资源管理器复制粘贴路径),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14145265/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com