所以这是交易。如果可能的话,我不想写50多个if语句或开关。
设定: 我有一个GUI类的Main类。在那个GUI中,我有一个JLabel,我想在其中更改其背景颜色。
它已被初始化为静态JLabel,因此可以由其他类设置,这样可以正常工作。
主要课程
goodornot.setBackground(Color.LIGHT_GRAY);
在另一个从脚本中获取输入的类中我想设置通用的变量。
PerfLoop类
RunChecks.rcMin = 50;
RunChecks.rcMax = 75;
RunChecks.changeColor = "goodornot";
String[] one = linecut.split("="); <-- I am splitting a string IGNORE
RunChecks.rcToCheck = Integer.parseInt(one[1]);
RunChecks rc = new RunChecks();
new Thread(rc).start();
所以我把所有这些都设置好了,它看起来很棒而且没有错误。
现在在另一个类(runChecks)中我试图引入树变量,因此它们可以放入通用变量,但我遇到了一个问题。
RunChecks类
public void run() {
// TODO Auto-generated method stub
if (rcToCheck <= rcMin){
Main.changeColor.setBackground(Color.GREEN);
} else if (){
}
我不能在这里使用changeColor来设置goodornot的颜色。我怎样才能获得变量changeColor来表示需要进入Main的东西。(就在这里).setBackground(Color.GREEN)?
我认为有一种方法,但对于我的生活,我尝试了一些不同的方式而不去。
是的,所有变量都设置为静态字符串和int。
感谢
答案 0 :(得分:2)
您正在开始一个新主题,因此您需要引用您的标签。请尝试以下方法:
class RunChecks implements Runnable
{
private JLabel label;
public RunChecks(JLabel label)
{
this.label = label;
}
public void run()
{
if (rcToCheck <= rcMin){
label.setBackground(Color.GREEN);
} else if (){
}
}
}
...
RunChecks rc = new RunChecks(yourLabelVariableHere);
new Thread(rc).start();