这是我加在JButton上的Focus事件:
private JButton getJButton1() {
if (jButton1 == null) {
jButton1 = new JButton();
jButton1.setSize(new java.awt.Dimension(47,25));
jButton1.setLocation(new java.awt.Point(28,30));
jButton1.addFocusListener(new java.awt.event.FocusListener() {
public void focusGained(java.awt.event.FocusEvent e) {
System.out.println("focusGained()"); }
public void focusLost(java.awt.event.FocusEvent e) {
System.out.println("lost");
}
});
}
return jButton1;
}
在控制台运行Applet,点击该Btton可以输出"focusGained()"但是同理我把Focus加在JLabel上则没任何反映:
private JPanel getJPanel() {
if (jPanel == null) {
jPanel = new JPanel();
jPanel.setLayout(gridLayout);String s[]={"1","2","3","4","5","6","7","8","wen","wht1"};
Image imgs[]=new Image[s.length];
for(int i=0;i {
Label label=new JLabel(new MyImage("img/"+s[i]+".jpg"));
jPanel.add(label);label.addFocusListener(new java.awt.event.FocusListener(){
public void focusGained(java.awt.event.FocusEvent e) {
System.out.println("focusGained()");
}
public void focusLost(java.awt.event.FocusEvent e) {
System.out.println("Lost()");
}
});
}}
return jPanel;
}
运行时点击JLabel里的图片,控制台没有输出,请问高手这是什么原因??怎样在JLabel上正确添加FocusListener呢?
private JButton getJButton1() {
if (jButton1 == null) {
jButton1 = new JButton();
jButton1.setSize(new java.awt.Dimension(47,25));
jButton1.setLocation(new java.awt.Point(28,30));
jButton1.addFocusListener(new java.awt.event.FocusListener() {
public void focusGained(java.awt.event.FocusEvent e) {
System.out.println("focusGained()"); }
public void focusLost(java.awt.event.FocusEvent e) {
System.out.println("lost");
}
});
}
return jButton1;
}
在控制台运行Applet,点击该Btton可以输出"focusGained()"但是同理我把Focus加在JLabel上则没任何反映:
private JPanel getJPanel() {
if (jPanel == null) {
jPanel = new JPanel();
jPanel.setLayout(gridLayout);String s[]={"1","2","3","4","5","6","7","8","wen","wht1"};
Image imgs[]=new Image[s.length];
for(int i=0;i {
Label label=new JLabel(new MyImage("img/"+s[i]+".jpg"));
jPanel.add(label);label.addFocusListener(new java.awt.event.FocusListener(){
public void focusGained(java.awt.event.FocusEvent e) {
System.out.println("focusGained()");
}
public void focusLost(java.awt.event.FocusEvent e) {
System.out.println("Lost()");
}
});
}}
return jPanel;
}
运行时点击JLabel里的图片,控制台没有输出,请问高手这是什么原因??怎样在JLabel上正确添加FocusListener呢?
import java.awt.BorderLayout;
import java.awt.event.FocusAdapter;
import java.awt.event.FocusEvent;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
import javax.swing.JButton;
import javax.swing.JComponent;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JTextField;public class FocusTest extends JFrame
{
private JTextField textField; /**
* Launch the application
*
* @param args
*/
public static void main(String args[])
{
try
{
FocusTest frame = new FocusTest();
frame.setVisible(true);
}
catch (Exception e)
{
e.printStackTrace();
}
} /**
* Create the frame
*/
public FocusTest()
{
super();
setBounds(100, 100, 500, 375);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
final JButton button = new JButton();
button.addFocusListener(new FocusAdapter()
{
public void focusGained(FocusEvent e)
{
System.out.println("Button Get Focus!!");
}
});
button.setText("New JButton");
getContentPane().add(button, BorderLayout.NORTH);
final JLabel label = new JLabel();
label.addMouseListener(new MouseAdapter()
{
public void mouseEntered(MouseEvent e)
{
if (e.getSource() instanceof JComponent)
{
((JComponent) e.getSource()).requestFocus();
}
}
});
label.addFocusListener(new FocusAdapter()
{
public void focusGained(FocusEvent e)
{
System.out.println("Label Get Focus!!");
}
});
label.setText("New JLabel");
getContentPane().add(label, BorderLayout.SOUTH);
textField = new JTextField();
getContentPane().add(textField, BorderLayout.CENTER);
//
}
}