我有一个具有
的SkillButton类private static final Border border = new LineBorder(Color.GRAY, 1);
private static final Border borderSelected = new LineBorder(Color.YELLOW, 1);
灰色边框未被覆盖,黄色边框悬停。我有一个方法
public void switchBorder(String s)
{
switch(s)
{
case "enter":
setBorder(borderSelected);
break;
case "leave":
setBorder(border);
}
}
在我进入和退出按钮时在这两者之间切换。当我在EDT上执行该方法时,它工作正常。由于某种原因,我从另一个线程调用此方法,并且边框不会更改。首先我尝试使用repaint()
方法,但我意识到我不会在paintComponent()
方法中绘制边框。在这种情况下,更新我的观点有什么好方法?