声明一个可变的文本字段

时间:2015-06-13 18:06:09

标签: java jtextfield

我正在尝试声明一个带有变量名称的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的变量JTextField?

下面的答案

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);  
}

1 个答案:

答案 0 :(得分:0)

在您的代码中,您实际上并未遵循规则来声明变量。 变量名称不能包含+,变量的名称也不能是动态的。

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

private JTextField HH[] = new JTextField[10];
int count = 0
HH[count++] = new JTextField(10);

如果你不知道你需要多少JTextField,那么使用任何List将是一个好主意。

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