public class WordInputJTextPane extends JTextPane{
private static final long serialVersionUID = 1L;
private String rightWordEn ="";
public static final Color RIGHT_COLOR = Color.BLUE;
public static final Color ERROR_COLOR = Color.RED;
private String[] wordBuffer;
private WordKeyListener wordKeyListener = new WordKeyListener();
public WordInputJTextPane() {
this.addKeyListener(wordKeyListener);
}
public String handlerResult(){
if(this.getText()==null || this.getText().length()==0){
return "2";
}else if(this.getText().trim().equalsIgnoreCase(rightWordEn)){
this.setForeground(RIGHT_COLOR);
return "0";
}else if(!this.getText().trim().equalsIgnoreCase(rightWordEn)){
this.setForeground(ERROR_COLOR);
return "1";
}else {
return "2";
}
}
public void setRightWordEn(String rightWordEn) {
this.rightWordEn = rightWordEn;
}
class WordKeyListener extends KeyAdapter{
public void keyReleased(KeyEvent e) {
handlerResult();
}
}
public String[] getWordBuffer() {
return wordBuffer;
}
public void setWordBuffer(String[] wordBuffer) {
for(int i = 0;i<wordBuffer.length;i++){
if(wordBuffer[i] == null){
wordBuffer[i] = "";
}
}
this.wordBuffer = wordBuffer;
}
}
private static final long serialVersionUID = 1L;
private String rightWordEn ="";
public static final Color RIGHT_COLOR = Color.BLUE;
public static final Color ERROR_COLOR = Color.RED;
private String[] wordBuffer;
private WordKeyListener wordKeyListener = new WordKeyListener();
public WordInputJTextPane() {
this.addKeyListener(wordKeyListener);
}
public String handlerResult(){
if(this.getText()==null || this.getText().length()==0){
return "2";
}else if(this.getText().trim().equalsIgnoreCase(rightWordEn)){
this.setForeground(RIGHT_COLOR);
return "0";
}else if(!this.getText().trim().equalsIgnoreCase(rightWordEn)){
this.setForeground(ERROR_COLOR);
return "1";
}else {
return "2";
}
}
public void setRightWordEn(String rightWordEn) {
this.rightWordEn = rightWordEn;
}
class WordKeyListener extends KeyAdapter{
public void keyReleased(KeyEvent e) {
handlerResult();
}
}
public String[] getWordBuffer() {
return wordBuffer;
}
public void setWordBuffer(String[] wordBuffer) {
for(int i = 0;i<wordBuffer.length;i++){
if(wordBuffer[i] == null){
wordBuffer[i] = "";
}
}
this.wordBuffer = wordBuffer;
}
}
本文详细介绍了WordInputJTextPane组件,它是一个用于在JTextPane中实现文字输入校验的Java类。该组件通过监听键盘事件,判断用户输入的文字是否与预设的正确单词匹配,并据此改变文字颜色。具体实现包括设置正确单词、监听键盘事件并返回校验结果。通过这种方式,可以提高用户输入的准确性和用户体验。
223

被折叠的 条评论
为什么被折叠?



