我已经找到了如何使用以下代码将JButton保持在其按下状态:
JButton[] buttons;
.
.
.
public void actionPerformed(ActionEvent e)
{
for(int i = 0; i < buttons.length; i++)
{
if(e.getSource() == buttons[i])
{
buttons[i].getModel().setPressed(true);
}
else
{
buttons[i].getModel().setPressed(false);
}
}
}
Run Code Online (Sandbox Code Playgroud)
此代码捕获单击的按钮,保持按下,并使面板上的所有其他按钮都未按下.这段代码效果很好......直到窗口失去焦点(或者更具体地说,它的父JPanel失去焦点).之后,所有按钮都返回到非按下状态.
现在,关于如何编写WindowFocusListeners的教程已关闭.有没有办法让JButton的压缩状态因失去焦点而持续存在?