我目前正在开发一个 GUI,您可以在其中输入您的姓名,它会告诉您该姓名是否已被接受。假设如果输入名称“John”或“Jane”,那么如果您输入任何其他名称,您会收到“已验证”消息或“未验证”消息。这是我到目前为止所拥有的,只是不确定如何添加 IF 语句来检测某些名称。谢谢。
NamePrompt.java
import java.awt.BorderLayout;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JTextField;
public class NamePrompt extends JFrame{
private static final long serialVersionUID = 1L;
String name;
public NamePrompt(){
setLayout(new BorderLayout());
JLabel enterYourName = new JLabel("Enter Your Name Here:");
JTextField textBoxToEnterName = new JTextField(21);
JPanel panelTop = new JPanel();
panelTop.add(enterYourName);
panelTop.add(textBoxToEnterName);
JButton submit = new JButton("Submit");
submit.addActionListener(new SubmitButton(textBoxToEnterName));
JPanel panelBottom = new JPanel();
panelBottom.add(submit);
//Add panelTop to JFrame
add(panelTop, BorderLayout.NORTH);
add(panelBottom, BorderLayout.SOUTH);
//JFrame set-up
setTitle("Name Prompt Program");
setDefaultCloseOperation(EXIT_ON_CLOSE);
pack();
setLocationRelativeTo(null);
}
public static void main(String[] args) {
NamePrompt promptForName = new NamePrompt();
promptForName.setVisible(true);
}
}
SubmitButton.java
import java.awt.Component;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JFrame;
import javax.swing.JOptionPane;
import javax.swing.JTextField;
public class SubmitButton implements ActionListener {
JTextField nameInput;
public SubmitButton(JTextField textfield){
nameInput = textfield;
}
@Override
public void actionPerformed(ActionEvent submitClicked) {
Component frame = new JFrame();
JOptionPane.showMessageDialog(frame , "You've Submitted the name " + nameInput.getText() + " which is allowed.");
}
}
最佳答案
正如另一个答案中提到的,这应该在 actionPerformed 方法中处理。但是,根据您向社区展示的内容,以下内容应该可行;
如果名称区分大小写,则修改如下:
public SubmitButton(JTextField textfield){
nameInput = textfield;
if (nameInput.equals("InsertCaseSensitiveName")) {
//TODO: Verified Name
} else {
//TODO: Unverified Name
}
}
如果不区分大小写:
public SubmitButton(JTextField textfield){
nameInput = textfield;
if (nameInput.equalsIgnoreCase("InsertCaseSensitiveName")) {
//TODO: Verified Name
} else {
//TODO: Unverified Name
}
}
使用列表:
//initialize your list (formed so backwards compatible)
List<String> valid = new java.util.concurrent.CopyOnWriteArrayList<String>();
//Within a function, add all names to the list in lowercase (java.lang.String.toLowerCase())
public SubmitButton(JTextField textfield){
nameInput = textfield;
if (valid.contains(nameInput.toLowerCase()) {
//TODO: Verified Name
} else {
//TODO: Unverified Name
}
}
引用文献:
关于Java GUI 仅接受某些名称,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29945905/