如何在多个JTextfields上调用`setText`?

时间:2015-06-02 05:39:04

标签: java swing jtextfield boilerplate

我想找出一种方法,只需几行代码(最好是一行)设置多个JTextfield的文本,而不是每个文本字段的新行。

我正在寻找一种在多个setText值上调用JTextfield方法的方法。我的代码正常运行,但我不想为每个someField.setText("0.00");写出JTextfield

以下是我想缩短的重复调用的代码:

JButton btnNewButton_1 = new JButton("Clear");
    btnNewButton_1.setBounds(367, 533, 86, 32);
    btnNewButton_1.setFont(new Font("Tahoma", Font.PLAIN, 11));
    btnNewButton_1.addActionListener(new ActionListener() {
        public void actionPerformed(ActionEvent e) {

            textIncome.setText("0.00");
            textGrossSalary.setText("0.00");
            textGrossSalary.setText("0.00");
            textHousehold.setText("0.00");
            textFood.setText("0.00");
            textChildren.setText("0.00");
            textBills.setText("0.00");
            textIncidentals.setText("0.00");
            textCredit.setText("0.00");
            textHome.setText("0.00");
            textInvestings.setText("0.00");
            textPets.setText("0.00");
            textTransport.setText("0.00");
            textLifestyle.setText("0.00");
            textTax.setText("0.00");
            textDisposable.setText("0.00");
            textHealthFitness.setText("0.00");
            textGiftsDonations.setText("0.00");

        }

    });

1 个答案:

答案 0 :(得分:4)

将它们放在List或数组中并迭代它们

例如,创建一个实例字段数组,其中包含您要设置的字段(相同的值)

private JTextField fields[] = new JTextField[]{
        textIncome,
        textGrossSalary,
        textGrossSalary,
        textHousehold,
        textFood,
        textChildren,
        textBills,
        textIncidentals,
        textCredit,
        textHome,
        textInvestings,
        textPets,
        textTransport,
        textLifestyle,
        textTax,
        textDisposable,
        textHealthFitness,
        textGiftsDonations};

然后当触发ActionListener时,迭代它......

btnNewButton_1.addActionListener(new ActionListener() {
    public void actionPerformed(ActionEvent e) {
        for (JTextField field : fields) {
            field.setText("0.00");
        }
    }
});

基于btnNewButton_1.setBounds(367, 533, 86, 32);,我建议避免使用null布局,像素完美布局是现代ui设计中的错觉。影响组件个体大小的因素太多,您无法控制。 Swing旨在与布局管理器一起工作,放弃这些将导致问题和问题的终结,您将花费越来越多的时间来纠正