这个监听器怎么没效果??

lian_2010 2012-06-22 12:33:37

import java.awt.*;
import java.awt.event.KeyEvent;
import java.awt.event.*;
import javax.swing.*;
import javax.swing.event.*;
public class App_0622 extends JFrame
{

/**
* @param args
*/private JLabel lbl;
Container c=getContentPane();

public App_0622()
{
super("Image");
c.setLayout(new FlowLayout());
lbl=new JLabel(new ImageIcon("2.png"));
c.add(lbl);
//setSize(460,650);
c.addKeyListener(new hand());
setVisible(true);

}
class hand extends KeyAdapter
{
public void keypressed(KeyEvent e)
{
if(e.getKeyChar()=='r')
{
for(int i=0;i<30;i++)
{
try
{
Thread.sleep(70);
c.setSize(16*i,22*i);
}
catch(InterruptedException q)
{

}
}
}
if(e.getKeyChar()=='p')
{
for( int i=29;i>0;i--)
{
try
{
Thread.sleep(70);
c.setSize(16*i,22*i);
}
catch(InterruptedException q)
{

}
}
}
}
}
public static void main(String[] args)
{
// TODO Auto-generated method stub
App_0622 App=new App_0622();
}

}


想实现程序运行后,按下r 窗口变大,按下p 变小,但是却没反应,哪里出错呢??
...全文
169 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
Sad4This 2012-06-22
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 的回复:]
Java code


import java.awt.*;
import java.awt.event.KeyEvent;
import java.awt.event.*;
import javax.swing.*;
import javax.swing.event.*;
public class App_0622 extends JFrame
{

/**
……
[/Quote]
正解,lz如果按你那种写法
应该是

public App_0622()
{
super("Image");
c.setLayout(new FlowLayout());
lbl=new JLabel(new ImageIcon("2.png"));
c.add(lbl);
//setSize(460,650);
c.addKeyListener(new hand());
add(c); //不要忘了在Frame里添加c,否则当然看不到你要的效果
setVisible(true);

}
周靖峰 2012-06-22
  • 打赏
  • 举报
回复

import java.awt.*;
import java.awt.event.KeyEvent;
import java.awt.event.*;
import javax.swing.*;
import javax.swing.event.*;
public class App_0622 extends JFrame
{

/**
* @param args
*/private JLabel lbl;
Container c=getContentPane();

public App_0622()
{
super("Image");
c.setLayout(new FlowLayout());
lbl=new JLabel(new ImageIcon("2.png"));
c.add(lbl);
//setSize(460,650);
addKeyListener(new hand()); //这里应该是给JFrame加监听
setVisible(true);

}
class hand extends KeyAdapter
{
public void keyPressed(KeyEvent e) //这里写错了,你写成keypressed了
{
if(e.getKeyChar()=='r')
{
System.out.println("r");
for(int i=0;i<30;i++)
{
try
{
Thread.sleep(70);
setSize(16*i,22*i); //这里应该是设置JFrame的大小
}
catch(InterruptedException q)
{

}
}
}
if(e.getKeyChar()=='p')
{
System.out.println("p");
for( int i=29;i>0;i--)
{
try
{
Thread.sleep(70);
setSize(16*i,22*i); //这里应该是设置JFrame的大小
}
catch(InterruptedException q)
{

}
}
}
}
}
public static void main(String[] args)
{
// TODO Auto-generated method stub
App_0622 App=new App_0622();
}

}

62,621

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧