当前位置: 首页 > 知识库问答 >
问题:

如何在Java中为数组中的项命名?

龙俊良
2023-03-14

我已经创建了JFields数组;

JFields[] field = new JField[5];

for(int j = 0; i < 5; i++) {
    field[j] = new JField();
}

我要做的是给数组中的每个项一个名称,例如field1、field2、field3、field4、Field5。

String[] field = {field1, field2, field3, field4, field5}
field[j] = {field1, field2, field3, field4, field5}

谢谢

共有1个答案

袁霍英
2023-03-14

这就是你的数组的作用。因为您有一个名为fields的JTextField数组,所以您已经为数组中的项(如Field[2]和Field[3])指定了“名称”,所以这里不需要给变量指定“名称”。

你说:

我尝试了例如字段[0]或字段[1]等,但都不起作用。

编辑
例如:

import java.awt.BorderLayout;
import java.awt.GridLayout;
import java.awt.event.ActionEvent;

import javax.swing.*;

@SuppressWarnings("serial")
public class TextFieldFun extends JPanel {
   public static final int TEXT_FIELD_COUNT = 8;
   private static final int COLS = 10;

   // array of JTextFields
   private JTextField[] fields = new JTextField[TEXT_FIELD_COUNT];

   // JTextField used to enter text to go into one of the array item fields
   private JTextField enterField = new JTextField(COLS);

   // spinner to choose which fields item to have its text set
   private JSpinner fieldIndexSpinner = new JSpinner(new SpinnerNumberModel(0, 0, TEXT_FIELD_COUNT - 1, 1));

   public TextFieldFun() {
      // JPanel to hold the array of fields
      JPanel textFieldPanel = new JPanel(new GridLayout(0, 1));
      for (int i = 0; i < fields.length; i++) {
         // create field items for array
         fields[i] = new JTextField(COLS);
         fields[i].setEditable(false);
         fields[i].setFocusable(false);
         JPanel rowPanel = new JPanel();
         rowPanel.add(new JLabel("Field " + i + ":"));
         rowPanel.add(fields[i]); // and put into a JPanel
         textFieldPanel.add(rowPanel);  // put JPanel into grid layout using JPanel
      }

      EnterAction enterAction = new EnterAction();
      enterField.setAction(enterAction);

      JPanel bottomPanel = new JPanel();
      bottomPanel.add(new JLabel("Row to Change:"));
      bottomPanel.add(fieldIndexSpinner);
      bottomPanel.add(new JLabel("Text:"));
      bottomPanel.add(enterField);
      bottomPanel.add(new JButton(enterAction));

      setLayout(new BorderLayout());
      add(textFieldPanel, BorderLayout.CENTER);
      add(bottomPanel, BorderLayout.SOUTH);
   }

   private class EnterAction extends AbstractAction {
      public EnterAction() {
         super("Enter");
      }
      @Override
      public void actionPerformed(ActionEvent e) {
         // get the text from the enterField JTextField
         String text = enterField.getText();

         // get the int from the JSpinner
         int index = ((Integer)fieldIndexSpinner.getValue()).intValue();

         // set the JTextField in the array whose index matches that of the spinner value
         fields[index].setText(text);
      }
   }

   private static void createAndShowGui() {
      TextFieldFun mainPanel = new TextFieldFun();

      JFrame frame = new JFrame("TextFieldFun");
      frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
      frame.getContentPane().add(mainPanel);
      frame.pack();
      frame.setLocationByPlatform(true);
      frame.setVisible(true);
   }

   public static void main(String[] args) {
      SwingUtilities.invokeLater(new Runnable() {
         public void run() {
            createAndShowGui();
         }
      });
   }
}
 类似资料:
  • 问题内容: 当我在名为$ tags的变量(多维数组)上进行var_dump时,会得到以下信息: 我想将所有名为“ url”的数组键重命名为“值”。什么是做到这一点的好方法? 问题答案: 您可以用来做。

  • 问题内容: 我想将数组转换为Java中的Set。有一些明显的方法可以做到这一点(例如,使用循环),但是我想要一些更整洁的东西,例如: 有任何想法吗? 问题答案: 像这样: 在Java 9+中,如果设置不可修改,则可以: 在Java 10+中,可以从数组组件类型推断出泛型类型参数:

  • 问题内容: 我正在寻找一种在MySQL中为数据库命名的方法。原因是能够重命名实时生产数据库而不会导致系统停机。我想可以将数据库别名为新名称,随意更改和部署连接到数据库的代码,并最终删除旧别名。 如果有更好的方法可以做到这一点,请告诉我。 问题答案: https://dev.mysql.com/doc/refman/5.7/en/symbolic-links-to- databases.html 说

  • 问题内容: 我想像djangoproject.com上的这张票一样执行相同的操作,但是具有一些附加格式。从这个查询 我想得到这样的东西: 是否有另一种更内置的方法,还是我必须手动执行此操作? 问题答案: 这有点hacky,但是你可以使用以下extra方法: 这基本上是在SQL中完成的。 如果你始终想要重命名的版本,但是数据库具有神秘名称,则另一种选择是使用新名称命名字段,但用于db_column引

  • 下面是一个java类CreateDoc,它从一个作为生产者端的web服务发送到另一个作为消费者端的web服务,其内容类型为:json 下面是类表示 一旦我在消费者端接收到作为json的列表,我就不能将其用作java对象,并且内容类型是数组,其中json嵌套在数组中。 以下是代表: 问题是如何处理这一点,并能够使用数据和表示为列表。

  • 问题内容: 我有一个Java项目,可以在Eclipse上正常运行。现在,我需要使用命令行来运行它,例如java classpath …如何在Eclipse中基于存储的类路径来设置该类路径。 问题答案: 只需导航到类文件所在的目录并使用 编辑:您可以将替换为任何类路径。例如,要查找您的类路径,可以使用 编辑:看起来像有相当多的信息,可以帮助你在这里。