Java 程序错误(文本字段)

标签 java compiler-errors

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 所需的数字。不幸的是,子字符串方法无法找到文本字段。它显示错误为“找不到符号”。这是一个文本字段。为什么该方法找不到该 TextField。?

最佳答案

消息:

cannot find symbol

不是指文本字段,而是指 JTextField 不存在的方法 substring(..)。但类似...

textField.getText().substring(...);

..可能会起作用,因为 getText() 返回一个 String 并且 String 有该方法。

关于Java 程序错误(文本字段),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14300870/

相关文章:

python - 在Red Hat Enterprise Linux Server版本6.10(圣地亚哥)上构建MultiNest时,安装失败

c++ - 使用具有多态性的引用时无效的初始化

r - RMySQL在Fedora 28,Rstudio 1.1.4版上安装错误,

java - Android 项目中带有 2 个字符串的 ListView/ListAdapter

Java读取二进制文件(unsigned long long)

java - Selenium 中的数据提供程序与 TestNG 和 Java 不匹配

java - 使用 java 从 .cgi 中提取 .jpg(IP 网络摄像头)

java - Java Swing 中冲突的助记符

c++ - 导入 msado15.dll 时出错

c++ - 什么可能会在一台计算机上导致不明确的符号错误,而在另一台计算机上则不会?