gpt4 book ai didi

java - 有没有办法缩短这段重复的代码? (添加 JPanel 组件)

转载 作者:行者123 更新时间:2023-11-30 08:11:49 25 4
gpt4 key购买 nike

有没有办法缩短这段代码?这是非常重复的。我在想也许有一种方法可以在我的 Widget 类中创建一个返回对象数组的方法,这样我就可以将代码缩短为一行:

ecoPanel.add(economy.getObjects);

经济标准高级异常(exception)都是来自的Widget对象我创建的 Widget

    ecoPanel.add(economy.styleLB); //adds economy textFiield to our ecoPanel
ecoPanel.add(economy.redLB); //adds economy red label to our ecoPanel
ecoPanel.add(economy.redTF); //adds red textfield to show inventory amount
ecoPanel.add(economy.greenLB); //adds economy green label to our ecoPanel
ecoPanel.add(economy.greenTF); //adds green textfield to show inventory amount
ecoPanel.add(economy.blueLB); //adds economy blue label to our ecoPanel
ecoPanel.add(economy.blueTF); //adds blue textfield to show inventory amount
ecoPanel.add(economy.yellowLB); //adds economy yellow label to our ecoPanel
ecoPanel.add(economy.yellowTF); //adds yellow textfield to show inventory amount
ecoPanel.add(economy.totalLB); //adds economy total label to our ecoPanel
ecoPanel.add(economy.totalTF); //adds total textfield to show inventory amount

stdPanel.add(standard.styleLB); //adds standard textFiield to our stdPanel
stdPanel.add(standard.redLB); //adds standard red label to our stdPanel
stdPanel.add(standard.redTF); //adds red textfield to show inventory amount
stdPanel.add(standard.greenLB); //adds standard green label to our stdPanel
stdPanel.add(standard.greenTF); //adds green textfield to show inventory amount
stdPanel.add(standard.blueLB); //adds standard blue label to our stdPanel
stdPanel.add(standard.blueTF); //adds blue textfield to show inventory amount
stdPanel.add(standard.yellowLB); //adds standard yellow label to our stdPanel
stdPanel.add(standard.yellowTF); //adds yellow textfield to show inventory amount
stdPanel.add(standard.totalLB); //adds standard total label to our stdPanel
stdPanel.add(standard.totalTF); //adds total textfield to show inventory amount

advPanel.add(advanced.styleLB); //adds advanced textFiield to our advPanel
advPanel.add(advanced.redLB); //adds advanced red label to our advPanel
advPanel.add(advanced.redTF); //adds red textfield to show inventory amount
advPanel.add(advanced.greenLB); //adds advanced green label to our advPanel
advPanel.add(advanced.greenTF); //adds green textfield to show inventory amount
advPanel.add(advanced.blueLB); //adds advanced blue label to our advPanel
advPanel.add(advanced.blueTF); //adds blue textfield to show inventory amount
advPanel.add(advanced.yellowLB); //adds advanced yellow label to our advPanel
advPanel.add(advanced.yellowTF); //adds yellow textfield to show inventory amount
advPanel.add(advanced.totalLB); //adds advanced total label to our advPanel
advPanel.add(advanced.totalTF); //adds total textfield to show inventory amount

excPanel.add(exceptional.styleLB); //adds exceptional textFiield to our excPanel
excPanel.add(exceptional.redLB); //adds exceptional red label to our excPanel
excPanel.add(exceptional.redTF); //adds red textfield to show inventory amount
excPanel.add(exceptional.greenLB); //adds exceptional green label to our excPanel
excPanel.add(exceptional.greenTF); //adds green textfield to show inventory amount
excPanel.add(exceptional.blueLB); //adds exceptional blue label to our excPanel
excPanel.add(exceptional.blueTF); //adds blue textfield to show inventory amount
excPanel.add(exceptional.yellowLB); //adds exceptional yellow label to our excPanel
excPanel.add(exceptional.yellowTF); //adds yellow textfield to show inventory amount
excPanel.add(exceptional.totalLB); //adds exceptional total label to our excPanel
excPanel.add(exceptional.totalTF); //adds total textfield to show inventory amount

最佳答案

也许将标签和文本字段放入单独的 ArrayList 中,然后使用 for 循环添加它们会起作用。另外,如果你想将它们全部按顺序排列,你可以创建一个对象数组列表,然后使用

找出它们是什么类
//add a for loop here
String str = arrList.get(i).getClass.getName();
if(str.equals("JLabel"))
{
panel.add(arrList.get(i));
}
else
{
// other objects added
}

并继续以这种方式添加它们。

关于java - 有没有办法缩短这段重复的代码? (添加 JPanel 组件),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30291855/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com