<div class="iteye-blog-content-contain" style="font-size: 14px">
在做javaSwing开发的过程中,如果将Jpanel作为画布,会发现KeyListener 的相关事件无任何响应。为什么会出现这种情况呢?
是因为Jpanel在渲染完成后,无法获取focus,所以只要解决这个问题就行了。
参考了网上很多人的解决方案,以及参考了java api的一些说明。
发现了一个方法的requestFocusInWindow,可在各种平台之间一致地实现获取焦点行为。
另外:
实现了一种自我感觉较好的方法,使继承了Jpanel实体的类实现MouseMotionListener接口,在mouseMove方法中使用:
boolean status = this.requestFocusInWindow();
来实时获取焦点。
下面我将我做的demo的实例贴在下面:
import java.awt.event.KeyEvent;
import java.awt.event.KeyListener;
import java.awt.event.MouseEvent;
import java.awt.event.MouseMotionListener;
import javax.swing.JPanel;
public class JPanelTest extends JPanel implements KeyListener, MouseMotionListener {
public JPanelTest() {
addKeyListener(this);
addMouseMotionListener(this);
}
public static void main(String[] args) {
Console.run(new JPanelTest(), 200, 200);
}
@Override
public void keyTyped(KeyEvent e) {
System.out.println("key keyTyped code:" + e.getKeyCode());
}
@Override
public void keyPressed(KeyEvent e) {
System.out.println("key pressed code:" + e.getKeyCode());
}
@Override
public void keyReleased(KeyEvent e) {
// TODO Auto-generated method stub
System.out.println("keyReleased code:" + e.getKeyCode());
}
@Override
public void mouseDragged(MouseEvent e) {
// TODO Auto-generated method stub
}
@Override
public void mouseMoved(MouseEvent e) {
boolean status = this.requestFocusInWindow();
}
}
</div>
分享到:
相关推荐
java Swing多Jpanel仿安卓苹果桌面动态切换滑动效果
java Swing多Jpanel仿安卓苹果桌面动态切换滑动效果
此面板继承自JPanel,放置其上的组件能够根据面板大小的变化,重新计算新的组件位置,从而实现自适应布局,详细使用方法请见源码注释
主要介绍了Java Swing JPanel面板的使用方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
NULL 博文链接:https://javapub.iteye.com/blog/764681
使用纯java swing 编写的日期时间选择控件,免去了以前的手动输入造成的输入错误,输入丢失的不必要的错误
java swing jpanel 布局
JPanel是Swing库中的一个容器组件,用于在图形用户界面(GUI)中容纳和管理其他组件。
非常适合加强java基础的人来练手 完整的画图板项目,模仿win10自带画图板写的 很有学习价值
JCONTROL provides an easy way to integrate a full range of java GUIs from the java.awt and javax.swing libraries into MATLAB. Example: obj=JCONTROL(Parent, Style); obj=JCONTROL(Parent, Style,... ...
这是刚刚上传的,也是找了好久,其他人的都死要钱,死要分数,动辄就是五六十积分,好几十分,有需要的赶紧下载,对你有帮助最好,没帮助也别强求,太难找了。
Java绘图和JPanel容器
账户名密码都是1,写代码时com.zjyt.run是主main出口类,在com.zjyt.ui里写各个程序员的...即可以,运行起来后,双击树形结构的节点,右边的tab控件就显示相应的JPanel 模块,双击JTabledPanel的头,就可以关闭当前的页面.
整个大鱼吃小鱼的完整代码,打包成压缩文件,上传可供下载
import javax.swing.JPanel; import javax.swing.JPasswordField; import javax.swing.JTextArea; import javax.swing.JTextField; import javax.xml.bind.util.ValidationEventCollector; import ...
通过Java实现JPanel版俄罗斯方块,包括图片资源。
使用java Swing手写Jtable增删改查 怀旧版,涉及到简单布局(BorderLayout、Flowlayout)、Dialog、Jframe、Jpanel等
PageNumDemo.java
JPanel 渐进色背景,和图片背景(可叠加)的实现代码,以及使用样例。 jar文件中包含源代码,本身可执行以便于看效果。
swing多个布局切换实例,就是一个小demo