java 在事件中创建一个标签,并显示出来
想在java的键盘事件中创建一个标签,条件是按住键盘的“↑”时显示出来。但按后没反应,不知道原因。addKeyListener(newKeyAdapter(){if(e....
想在java 的键盘事件中创建一个标签,条件是按住键盘的“↑”时显示出来。但按后没反应,不知道原因。
addKeyListener(new KeyAdapter() {
if(e.getKeyCode()==KeyEvent.VK_UP){
JLabel lblNewLabe2 = new JLabel("111");
contentPane.add(lblNewLabe2);
lblNewLabe2.setLocation(lblNewLabel.getX()+lblNewLabel.getWidth()/2, lblNewLabel.getY()*2);
// contentPane.validate(); 刷新面板也没反应
}
}
通过System.out.println(contentPane.getComponentCount()); 可以得到每次是向里面加了个标签,也试了添加 lblNewLabe2.setVisible(true);还是没有用呀。 展开
addKeyListener(new KeyAdapter() {
if(e.getKeyCode()==KeyEvent.VK_UP){
JLabel lblNewLabe2 = new JLabel("111");
contentPane.add(lblNewLabe2);
lblNewLabe2.setLocation(lblNewLabel.getX()+lblNewLabel.getWidth()/2, lblNewLabel.getY()*2);
// contentPane.validate(); 刷新面板也没反应
}
}
通过System.out.println(contentPane.getComponentCount()); 可以得到每次是向里面加了个标签,也试了添加 lblNewLabe2.setVisible(true);还是没有用呀。 展开
1个回答
展开全部
尽量少用JFrame,除了要监控窗口状态事件,其他情况下多用JPanel
public static void main(String[] args) {
JFrame f = new JFrame();
final JPanel p = new JPanel();
p.setFocusable(true);
f.add(p);
f.setSize(400, 400);
p.addKeyListener(new KeyAdapter() {
@Override
public void keyPressed(KeyEvent e) {
if (e.getKeyCode() == KeyEvent.VK_UP) {
System.out.println("hello");
JLabel l = new JLabel("111");
p.add(l);
p.validate();
}
}
});
f.setDefaultCloseOperation(3);
f.setVisible(true);
}
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询