【问题标题】:declaring arrays and accepting inputs from the user, recording data声明数组并接受用户的输入,记录数据
【发布时间】:2017-02-24 16:48:27
【问题描述】:

我需要从用户那里获取输入,说明每个人的姓名和成绩,将具有相应成绩的人名保存到数组中,以便以后可以按姓名或成绩进行搜索。 这是我到目前为止得到的结果

import javax.swing.*;
import java.awt.event.*;
import java.awt.*;
import java.util.*;

public class Grades extends JFrame
    {
    String names;
    int results, count;
    int a;
    //declare Buttons
    private JTextField t1, name, grades;
    private JLabel lbl1, namelbl, gradelbl;

    //constructor
    public Grades()
        {
        super("Grades");

        Container c = getContentPane();
        c.setLayout(new FlowLayout());

        lbl1 = new JLabel("Please enter a number of results");
        c. add(lbl1);

        t1 = new JTextField (2);
        c. add(t1);

        namelbl = new JLabel("Please enter student's name");
        c. add(namelbl);

        name = new JTextField (10);
        c. add(name);

        gradelbl = new JLabel("Please enter student's grade");
        c. add(gradelbl);

        grades = new JTextField (10);
        c. add(grades);


        //create an instance of inner class ButtonHandler
        //to use for button event handling
        ButtonHandler handler = new ButtonHandler();

        t1.addActionListener(handler);
        name.addActionListener(handler);
        grades.addActionListener(handler);

        setSize(400, 400);
        setVisible(true);
        }
    public static void main (String args [])
        {
        Grades app = new Grades();
        app.addWindowListener(
        new WindowAdapter()
            {
            public void windowClosing(WindowEvent e)
                {
                System.exit(0);
                }
            });
        }

    //inner class for button event handling
    private class ButtonHandler implements ActionListener
        {
        public void actionPerformed (ActionEvent e)
            {
            Container c = getContentPane();
                if(e.getSource() == t1)
                    {
                    a = Integer.parseInt(t1.getText());
                    if (a < 2 || a > 25)
                        {
                        JOptionPane.showMessageDialog(null, "You entered wrong value. Please re- enter");
                        t1.requestFocusInWindow();
                        t1.setText("");
                        a = Integer.parseInt(t1.getText());
                        }
                    name.requestFocusInWindow();
                    }
                if(e.getSource() == name)
                    {
                    names = name.getText();
                    grades.requestFocusInWindow();
                    grades.setText("");
                    }
                if(e.getSource() == grades)
                    {
                    results = Integer.parseInt(grades.getText());
                    if(results < 0 || results > 100)
                        {
                        JOptionPane.showMessageDialog(null, "You entered wrong value. Please re- enter");
                        grades.requestFocusInWindow();
                        grades.setText("");
                        a = Integer.parseInt(t1.getText());
                        }
                        else
                        {
                            name.requestFocusInWindow();
                            name.setText("");
                            System.out.println(names + "   " + results);
                        }
                    }

}
}
}

【问题讨论】:

  • 我的问题似乎很好。我:解释了我的项目的背景包括我想要完成的详细列表显示了我已经尝试过的/我到目前为止的工作我的问题很清楚,我需要帮助来完成任务。

标签: java arrays swing


【解决方案1】:

要将它们存储在数组中,您需要做的就是先将它们放入。

例如名称数组只是创建一个新数组:

  'String[] namelist = new String[numofnames];'

然后搜索它只需使用 for 循环并检查您正在寻找的字符串名称的索引。检查是否匹配。

例如

for(int x = 0; x<numofnames; x++)
{
   name.toLowerCase();
   namelist.toLowerCase();
   if(name.equals(namelist[x])
    return x; //return whatever you need
}

这应该可以解决这个问题。

【讨论】:

  • 我从用户那里得到姓名和等级值并记录下来。但是我需要将它们放入一个数组中,以便以后能够按名称或等级进行搜索。问题是如何将这些值转换为具有字符串和 int 值的数组元素?
  • 为了节省空间,你可以说 name.equalsIgnoresCase() 来消除 toLowerCase() 语句。
  • 我的问题是:我如何存储值:
  • 彼得,86 桑德拉,89 约翰,76 亚当,90 克莱尔,48 阵列
  • 我会使用两个数组,一个用于姓名,一个用于成绩,并确保索引对齐。但是,如果您同时存储两者,则必须将其存储为字符串并使用 concat 方法获取成绩部分并将其转换为 int。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-06-30
  • 1970-01-01
  • 2016-05-16
  • 1970-01-01
相关资源
最近更新 更多