gpt4 book ai didi

java - 使用另一个方法中的参数访问方法中变量的值

转载 作者:太空宇宙 更新时间:2023-11-04 12:09:38 25 4
gpt4 key购买 nike

正如您在 public void form4() 中看到的,我想创建一个 JLabel 数组,其大小取决于 public void receive(String rlc) 内的变量 x。 String rlc的值来 self 的另一个类。如果不可能,请给我建议或其他方法。谢谢

package name1;

import java.awt.FlowLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.JTable;
import javax.swing.JTextField;

public class NAME4 extends JFrame implements ActionListener
{
public int x;
String letter = "";
String alphabet = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
JLabel label1;
JTextField part;

String count,count2;
int value;

double lite;
int arraycount;
int array;
JLabel[] parted;
String[] characters;
JButton okbutton;
int int1;
public String ameer;
JLabel label56;
public NAME4()
{
super ("My Game4");
setSize(500,500);
setDefaultCloseOperation(EXIT_ON_CLOSE);
setResizable(true);
setLocationRelativeTo(null);
form4();

}
public void form4()
{
label1 = new JLabel(letter);
setLayout(new FlowLayout(1,250,25));
part = new JTextField(null,3);
okbutton = new JButton("OK");
okbutton.addActionListener(this);
add(label1);
add(part);
add(okbutton);
parted = new JLabel[x];
}

public void receiver(String rlc)
{
x = Integer.parseInt(rlc);
lite = 26/x;
arraycount = (int) lite;
array = arraycount +1 ;
for (int a = 1; a < alphabet.length()+1; a++)
{
letter = letter + alphabet.charAt(a-1);
if ((a) % x == 0)
{
letter = letter + "|";
}
}
label1.setText(letter);
characters = new String [array];
int inc = x;
int y;
int h=0,z;
for (z = 0 ; z < array ; z++)
{
characters[z] = "";
for (y = h ; y < inc ; y++)
{
characters[z] += letter.charAt(y);
}
h += (x+1);
inc = inc + (x+1);
if (z == array - 2)
{
switch(x)
{
case 1: inc = 52;
break;
case 2: inc = 38;
break;
case 3: inc = 34;
break;
case 4: inc = 32;
break;
case 5: inc = 31;
break;
case 6: inc = 30;
break;
case 7: inc = 29;
break;
case 8: inc = 29;
break;
case 9: inc = 28;
break;
}
}
}
}//void receiver
@Override
public void actionPerformed(ActionEvent e) {

}

}

最佳答案

是的,您可以访问xform4()方法,因为x是一个类字段,可以通过类中的任何方法访问它。
但是,您正在初始化 xreceiver()方法,之后执行form4() 。当 form4()执行,x未初始化(默认为 0),因此您的数组大小将为 0。

要修复此问题,您可以将最后一行从 form4() 移开。至receiver()像这样:

public void form4()
{
...
add(okbutton);
}

public void receiver(String rlc)
{
x = Integer.parseInt(rlc);
parted = new JLabel[x]; // <--- now x is initialized
lite = 26/x;
...

关于java - 使用另一个方法中的参数访问方法中变量的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39973753/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com