public static void main(String[] args)
{
JFrame frame = new JFrame("test");
JPanel panel = new JPanel();
Component a[] = null;
for(int i=0; i<3; i++)
{
final JTextField t = new JTextField();
t.setColumns(5);
a[i] = t;
t.addKeyListener(new KeyListener() {
public void keyReleased(KeyEvent e)
{
}
public void keyTyped(KeyEvent e) {}
public void keyPressed(KeyEvent e) {}
});
panel.add(t);
}
JTextField sum = new JTextField();
sum.setColumns(5);
panel.add(sum);
JScrollPane spanel = new JScrollPane(panel);
frame.add(spanel);
frame.setSize(800, 600);
frame.setVisible(true);
}
如何在每个字段按键i后,从循环中显示的所有字段
中对值求和答案 0 :(得分:1)
您可以尝试首先将所有文本字段添加到数组中,然后在按下某个键时,迭代数组并对值求和。
答案 1 :(得分:1)
由于您使用固定数量的文本字段(上面的代码示例中为3),我将使用数组来保持对它们的引用,并计算按下键时写入其中的值的总和。然后,您可以遍历数组(如果您选择包含更多文本字段,则使用大小为3或其他大小)并对文本字段中的所有数字求和。扩展您已经提供的代码,它看起来像:
public static void main(String[] args)
{
JFrame frame = new JFrame("test");
JPanel panel = new JPanel();
int nrOfTextFields = 3;
JTextField[] textFields = new JTextField[nrOfTextFields];
int sumOfallTextFields = 0;
for(int i=0; i<nrOfTextFields; i++)
{
final JTextField t = new JTextField();
t.setColumns(5);
t.addKeyListener(new KeyListener()
{
public void keyReleased(KeyEvent e)
{
sumOfAllTextFields = 0;
for(int i=0; i<nrOfTextFields; i++)
{
int textFieldValue = Integer.parseInt(textFields[i].getString());
sumOfAllTextFields += textFieldValue;
}
}
public void keyTyped(KeyEvent e) {}
public void keyPressed(KeyEvent e) {}
});
panel.add(t);
}
JTextField sum = new JTextField();
sum.setColumns(5);
panel.add(sum);
JScrollPane spanel = new JScrollPane(panel);
frame.add(spanel);
frame.setSize(800, 600);
frame.setVisible(true);
}
这假设在文本字段中输入的数字是整数。也没有检查用户是否在文本字段中输入了有效数字(例如,没有文字或符号)。