Как вызвать `setText` на нескольких полях JText?

Я хочу выяснить способ установить текст для нескольких JTextfields всего в нескольких строках (предпочтительно одна строка) кода, а не в новой строке для каждого текстового поля.

Я ищу способ вызвать 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 ответ

Решение

Поместите их в 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 макеты, идеальные пиксельные макеты - иллюзия в современном дизайне пользовательского интерфейса. Есть слишком много факторов, которые влияют на индивидуальный размер компонентов, ни один из которых вы не можете контролировать. Swing был разработан для работы с менеджерами компоновки в ядре, отказ от которых не приведет к концу проблем и проблем, которые вы будете тратить все больше и больше времени, пытаясь исправить

Другие вопросы по тегам