【问题标题】:Using TextFields in Two Methods without Declaring Universally在两种方法中使用 TextFields 而无需通用声明
【发布时间】:2016-04-22 06:19:51
【问题描述】:

您好,我是使用 JFrame 和动作监听器的新手,

我想从 20 多个字段中获取输入,然后我需要将其存储在数据库中。

我在 ActionEvent 中执行那些存储操作

Class Dialog_Box
    {
    JTextField Name; //1st TextField
    JTextField Place; //2nd TextField
    JTextField City; //3rd TextField
    JTextField Country; //4th
    .
    .
    .
    JTextField Pincode; //20th TextField

    Dialog_Box()
        {
        JButton Add = new JButton(
            {
            public void Action Performed()
                {
                String Name_data=Name.getText();//Getting first input
                String Place_data=Place.getText();
                .
                .
                .
                String Pincode=Pincode.getText();//Getting 20th input
                //Storing these data in Database
                }
            }); 
        }
    }

由于我的TextField 数据需要在两种方法(Constructor 方法和ActionPerformed 方法)中使用,我将这些 Textfields 通用声明。

但我不想普遍声明它。 有没有其他方法来声明这些 TextFields?

【问题讨论】:

  • 也许你想解释是什么驱动了你的请求,为什么你不想在你的类中声明字段。
  • @HovercraftFullOfEels 我想在我的类中声明它,但由于内存限制我不想声明它是通用的,我希望它单独在这两种方法之间声明。除了列表或地图
  • 这毫无意义,因为 20 个字段将具有最小的“内存”限制。 “我希望在我的课堂上声明它”与“声明它是通用的”是什么意思?通用在这种情况下没有任何意义。
  • @HovercraftFullOfEels 这里我以 20 个字段为例,我想创建一个包含许多文本字段的项目,并将其用于具有大数据的生产环境,所以这就是我想要它的原因更加优化
  • @HovercraftFullOfEels 这里universal指的是全局变量

标签: java swing optimization jframe actionevent


【解决方案1】:

如果您需要在此类中的多个实例方法中查询 JTextField 的状态,则它需要在允许这样做的范围内。

解决此问题的一种方法是使其成为类中的实例字段。其他选项是使其成为另一个类的实例字段,作为该类中的一个字段。

其他可行的选项还包括使用 JTextField 的集合,例如 ArrayList<JTextField>Map<String, JTextField>,您是否要使用它取决于您计划如何获得对感兴趣的 JTextField 的引用。但无论如何,如果要在整个类的多个方法/构造函数中可见,这个集合仍然需要是一个实例字段。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-05-06
    • 2023-03-11
    • 2014-05-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多