我想找出一种方法,只需几行代码(最好是一行)设置多个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");
}
});
答案 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旨在与布局管理器一起工作,放弃这些将导致问题和问题的终结,您将花费越来越多的时间来纠正