我有一个未经装饰的JFrame
我自己的标题'在顶部。除了告诉窗口是否没有焦点外,它工作正常。
我尝试过像
这样的事情if(!frame.hasFocus()
//Do stuff here
但是当我在窗口中有其他组件时,这显然不会起作用,例如JTextField
。我还没有办法做到这一点,所以任何帮助都会受到赞赏。
答案 0 :(得分:0)
以下是示例代码,您可以通过该示例代码来实现:
import java.awt.event.FocusListener;
import java.awt.event.WindowEvent;
import java.awt.event.WindowFocusListener;
import javax.swing.JFrame;
import javax.swing.JLabel;
public class SwingTest {
public static void main(String args[])
{
swing();
}
public static void swing()
{
JFrame g= new JFrame("First");
g.setVisible(true);
g.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
g.setSize(300, 300);
g.setLayout(null);
JLabel l=new JLabel("Times Windows Lost Focus : 0");
l.setBounds(20,10, 200, 60);
g.add(l);
g.addWindowFocusListener( new WindowFocusListener() {
int c=0;
@Override
public void windowLostFocus(WindowEvent e) {
c++;
}
@Override
public void windowGainedFocus(WindowEvent e) {
l.setText("Times Windows Lost Focus :"+c);
//System.out.println(c);
// TODO Auto-generated method stub
}
});;
}
}