我只是创建了这个具体但我对记录这个有点困惑。我只是坚持解释最后几行所做的事情:
class MyVerifier extends InputVerifier {
public boolean verify(JComponent input) {
if (input==id) {
return validId();
}
else if (input==name) {
return validName();
}
return false;
}
public boolean validId() {
boolean status;
String theID = id.getText();
Pattern pattern = Pattern.compile("\\d{8}");
Matcher matcher = pattern.matcher(theID);
if (matcher.matches()) {
status = true;
}
else {
status = false;
}
return status;
}
public boolean validName() {
boolean status;
String theName = name.getText();
Pattern pattern = Pattern.compile("[A-za-z0-9 ]+");
Matcher matcher = pattern.matcher(theName);
if (matcher.matches()) {
status = true;
}
else {
status = false;
}
return status;
}
}
你可以一个一个地解释这些具体的问题吗?
/**
* @param o the object corresponding to the user's selection
*/
@Override
public void tell(Object o) { -- Where has this come from ?
deptCode.setText(o.toString());
}
@Override
public void actionPerformed(ActionEvent e) {
if (e.getSource() == submit) {
MyVerifier test = new MyVerifier();
if (Staff.getStaff(id.getText()) == null && test.verify(id) &&
test.verify(name)) {
System.out.println("YAY");-- What is this doing
}
else if (!(Staff.getStaff(id.getText()) == null)) {
String errorMessage = "ID EXISTS: " + Staff.getStaff(id.getText()).toString(); -- What is this doing
JOptionPane.showMessageDialog(theFrame, errorMessage, "Error",
JOptionPane.WARNING_MESSAGE);-- What is this doing
}
else {
System.out.println("Woops.");
}
}
else if (e.getSource() == clear) {
id.setText(null);
deptCode.setText(null);
name.setText(null);
}
}
public static void main(String[] args) {
Registration test = new Registration();
}
}
答案 0 :(得分:0)
现在您已经了解了您要使用此程序完成的任务,请从一个干净的平板开始(如果需要,首先尝试使用您的第一次尝试)。重新开始通常比修复程序更容易。
答案 1 :(得分:0)
您的public void tell(Object o)
方法似乎正在设置一个String,其中包含传递的对象的值。但是,由于您没有向我们展示您使用它的目的,因此我们无法确切知道。另一方面,您的其他问题非常明确:
System.out.println("YAY");
Staff.getStaff(id.getText)
似乎正在检查字符串或文本文件中的名称和ID列表。仅当先前未使用提供的id
和name
创建了工作人员时,此语句才会打印“YAY”。但既然你还没有告诉我们这些变量的位置,这只是我最好的猜测。
JOptionPane.showMessageDialog(theFrame, errorMessage, "Error", JOptionPane.WARNING_MESSAGE);
如果已有一名具有给定JOptionPane
或id
的职员,则会显示name
警告消息。显然,您无法创建其他人拥有的帐户,因此如果确实如此,此JOptionPane
会显示错误消息。