0
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から誕生日を見つけるためのプログラムを作成しました。このコンパイル エラーを修正できませんでした。Nic を取得するために JTextField を作成し、次にサブストリング メソッドを追加して、nic を見つけるために必要な数値を取得しました。残念ながら、部分文字列メソッドは textField を見つけることができません。「シンボルが見つかりません」というエラーが表示されます。テキストフィールドです。メソッドがその TextField を見つけられないのはなぜですか?

4

2 に答える 2

1

メッセージ:

cannot find symbol

はテキスト フィールドを参照してsubstring(..)いませんが、 には存在しないメソッドですJTextField。しかし、何かのような..

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

.. a をgetText()返し、そのメソッドStringを持っているため、おそらく機能します。String

于 2013-01-13T05:40:38.960 に答える
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);
于 2013-01-13T05:40:59.337 に答える