Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/typescript/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 声明变量textfield_Java_Jtextfield - Fatal编程技术网

Java 声明变量textfield

Java 声明变量textfield,java,jtextfield,Java,Jtextfield,我试图用变量名声明一个JTextField 对于一个固定的JTextField,我只需在我的公共类之后将其声明为 private JTextField HH1; 但是有了一个可变的文本字段,我试图在其中创建它们 int count = 1 HH + count++ = new JTextField(10); 这是我的私人课 private void createGUI() { setDefaultCloseOperation(EXIT_ON_CLOSE); Container window

我试图用变量名声明一个JTextField

对于一个固定的JTextField,我只需在我的公共类之后将其声明为

private JTextField HH1;
但是有了一个可变的文本字段,我试图在其中创建它们

int count = 1
HH + count++ = new JTextField(10);
这是我的私人课

private void createGUI() {
setDefaultCloseOperation(EXIT_ON_CLOSE);
Container window = getContentPane();
window.setLayout(new GridBagLayout());

GridBagConstraints gbc = new GridBagConstraints();
GridBagConstraints gbc1 = new GridBagConstraints();
gbc.fill = GridBagConstraints.BOTH;
gbc.insets = new Insets(5, 50, 5, 0);
gbc1.insets = new Insets(5, -100, 5, 10);
int count = 1;
for(int y = 0; y < 10; y++) {
gbc.gridy = y;
gbc1.gridy = y;
for(int x = 0; x < 1; x++) {
gbc.gridx = x;
gbc1.gridx = x;

vol1HH + count++ = new JTextField(10);
HH1 = new JLabel("HH1");
window.add(HH1 + count++, gbc1);
window.add(vol1HH + count++, gbc);
}    
如何创建名为HH1到HH10的变量JTextFields

回答如下

private JTextField vol1HH[] = new JTextField [10];

private void createGUI() {
setDefaultCloseOperation(EXIT_ON_CLOSE);
Container window = getContentPane();
window.setLayout(new GridBagLayout());


GridBagConstraints gbc = new GridBagConstraints();
GridBagConstraints gbc1 = new GridBagConstraints();
gbc.fill = GridBagConstraints.BOTH;
gbc.insets = new Insets(5, 50, 5, 0);
gbc1.insets = new Insets(5, -100, 5, 10);
//int count = 1;
for(int y = 0; y < 10; y++) {
gbc.gridy = y;
gbc1.gridy = y;
for(int x = 0; x < 1; x++) {
gbc.gridx = x;
gbc1.gridx = x;

vol1HH[y] = new JTextField(10); 
window.add(vol1HH[y], gbc);  
}

在代码中,您实际上没有按照规则声明变量。 变量名不能包含+,变量名也不能是动态的

如果您知道需要多少JTextField,那么在您的情况下,最好的方法是使用JTextField数组

如果您不知道需要多少JTextField,那么使用任何列表都是一个好主意

private ArrayList<JTextField> HH = new ArrayList<>();
int count = 0;
HH.add(new JTextField(10));

如果您想要10个字段,只需创建10个字段。或者创建一个包含10个元素的Textfields数组,因为我正在将JTextFields作为for循环的一部分,并将定位作为GridBag布局的一部分声明vol1HH1为JTextField[]vol1HH=new JTextField[10]。将vol1HH+count++替换为vol1HH[count++]Hi Roberto Attias让我试试这个,这看起来很有希望是的,我意识到我不能用a+来声明变量名,我试图举例说明我正在尝试做什么,让我想想-也许你的解决方案会起作用JTextFields的数量由forint y=0控制;y<10;y++{这意味着您知道需要多少JTextField。所以您可以使用y大小的数组。
private ArrayList<JTextField> HH = new ArrayList<>();
int count = 0;
HH.add(new JTextField(10));