我想将字符串的第一个字母转换为大写字母.我正在尝试使用JavaDocs中描述的replaceFirst(),但我不知道正则表达式的含义.
这是我到目前为止尝试的代码:
public static String cap1stChar(String userIdea)
{
String betterIdea, userIdeaUC;
char char1;
userIdeaUC = userIdea.toUpperCase();
char1 = userIdeaUC.charAt(0);
betterIdea = userIdea.replaceFirst(char1);
return betterIdea;
}//end cap1stChar
Run Code Online (Sandbox Code Playgroud)
编译器错误是参数列表的长度不同.我认为这是因为缺少正则表达式,但我不知道究竟是什么.
如何显示JPasswordField的文本而不是将0设置为echo char?
Java Docs说:
将值设置为0表示您希望在键入文本时看到该文本,类似于标准JTextField的行为.
以下结果导致不兼容的类型错误
outField.setEchoChar(0);
Run Code Online (Sandbox Code Playgroud)
wheras
outField.setEchoChar('0');
Run Code Online (Sandbox Code Playgroud)
只需将0设置为echo char(每个数字显示0).
在JTextField上使用JPasswordField的原因是我想更改echo char并使用其他方法隐藏密码.
谢谢!
我还有空白问题JOptionPane.基于SO和Java Docs的研究,这显然与不使用它有关EDT.我的问题是EDT它及其方法究竟是如何适用的JOptionPane?例如,终端错误输出清楚地表明JOptionPane下面没有运行EDT.特别缺少什么,以及如何Runnable适应?
import javax.swing.*;
public class PaneDemo
{
public static void main(String[] args)
{
final String[] TEXT ={
//message
"Hello, World!",
//title
"Greeting"};//end TEXT
showMyPane(TEXT);
}//end main
public static void showMyPane(final String[] TEXT)
{
JOptionPane.showMessageDialog(null, TEXT[0], TEXT[1],
JOptionPane.INFORMATION_MESSAGE);
if(!SwingUtilities.isEventDispatchThread())
{
System.err.println("Err: GUI failed to use EDT.");
}//end if(!SwingUtilities.isEventDispatchThread())
}//end showMyPane
}//end class PaneDemo
Run Code Online (Sandbox Code Playgroud)
答案建议添加invokeLater.然而,这似乎并没有在BlueJ中表现得很好.

isEventDispatchThread()仍然在终端中返回错误.这只是因为它现在在错误的位置?