import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
class NICCode extends JFrame {
NICCode() {
setSize(600, 250);
setResizable(false);
setDefaultCloseOperation(3);
setLocationRelativeTo(null);
// JPanel
JPanel labelPanel = new JPanel(new FlowLayout(1));
JPanel leftBodyPanel = new JPanel(new GridLayout(3, 1));
JPanel bodyPanel = new JPanel(new GridLayout(3, 1));
JPanel buttonPanel = new JPanel(new FlowLayout(2));
JPanel textFieldPanel = new JPanel(new FlowLayout(0));
// JLabel
JLabel titleLabel = new JLabel("Find Your Birthday By NIC");
titleLabel.setFont(new Font("", 1, 25));
JLabel myLabel = new JLabel("CSG");
myLabel.setFont(new Font("", 1, 10));
JLabel enterNicLabel = new JLabel("Enter Your NIC :");
JLabel yourBirthDayLabel = new JLabel("Your Birth Day :");
JLabel yourGenderLabel = new JLabel("Gender :");
JLabel printBirthDayLabel = new JLabel("Your Birth Day");
JLabel printGenderLabel = new JLabel("Your Gender");
// JTextField
JTextField nicText = new JTextField(25);
nicText.setText("920000000V");
// JButton
JButton searchAgainButton = new JButton("Search Again");
JButton exitButton = new JButton("Exit");
// adds
add("North", labelPanel);
add("West", leftBodyPanel);
add("South", buttonPanel);
add(bodyPanel);
labelPanel.add(titleLabel);
leftBodyPanel.add(enterNicLabel);
leftBodyPanel.add(yourBirthDayLabel);
leftBodyPanel.add(yourGenderLabel);
textFieldPanel.add(nicText);
bodyPanel.add(textFieldPanel);
bodyPanel.add(printBirthDayLabel);
bodyPanel.add(printGenderLabel);
buttonPanel.add(myLabel);
buttonPanel.add(searchAgainButton);
buttonPanel.add(exitButton);
setVisible(true);
// pack();
String yearText = nicText.substring(0, 2);
String dateText = nicText.substring(2, 5);
String sex = "";
int year = Integer.parseInt(yearText);
int date = Integer.parseInt(dateText);
int month = 0;
if (date > 500) {
sex = "Feamale";
date -= 500;
} else {
sex = "Male";
}
int datesOfMonths[] = { 31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31 };
for (int i = 0; i < 12; i++) {
date = date - datesOfMonths[i];
month = i;
if (date < datesOfMonths[i + 1]) {
break;
}
}
if (month > 0) {
month += 1;
}
}
}
我刚创建了一个程序,用于从nic查找生日。我无法修复此编译错误。 我创建了一个JTextField来获取Nic,然后我添加了子串方法来获取所需的数字来查找nic。不幸的是,substring方法找不到textField。它显示错误为“无法找到符号”。这是一个TextField。为什么该方法找不到TextField。?
答案 0 :(得分:1)
消息:
cannot find symbol
不是指文本字段,而是指substring(..)
不存在的方法JTextField
。但有点像..
textField.getText().substring(...);
..可能会有效,因为getText()
会返回String
而String
会使用该方法。
答案 1 :(得分:0)
更改
String yearText = nicText.substring(0, 2);
String dateText = nicText.substring(2, 5);
到
String yearText = nicText.getText().substring(0, 2);
String dateText = nicText.getText().substring(2, 5);