16.18

 1 import java.awt.Graphics;
 2 import java.awt.event.*;
 3 import javax.swing.*;
 4
 5 public class Test_16_18 extends JFrame{
 6     private JP jp = new JP();
 7     public Test_16_18()
 8     {
 9         add(jp);
10         jp.setFocusable(true); //必须在JPanel这里设置focusable
11     }
12     public static void main(String[] args) {
13         // TODO Auto-generated method stub
14         Test_16_18 frame = new Test_16_18();
15         frame.setSize(300,300);
16         frame.setTitle("Test_16_18");
17         frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
18         frame.setLocationRelativeTo(null); // Center the frame
19         frame.setVisible(true);
20     }
21
22     static class JP extends JPanel{
23         private int x = 140, y = 140;
24         public JP(){
25             addKeyListener(new KeyAdapter(){
26                 public void keyPressed(KeyEvent e){
27                     switch(e.getKeyCode()){
28                     case KeyEvent.VK_UP: y -= 10; break;
29                     case KeyEvent.VK_DOWN: y += 10; break;
30                     case KeyEvent.VK_LEFT: x -= 10; break;
31                     case KeyEvent.VK_RIGHT: x += 10; break;
32                     }repaint();
33                 }
34             });
35         }
36         protected void paintComponent(Graphics g){
37             super.paintComponent(g);
38             g.drawOval(x, y, 30, 30);
39         }
40     }
41 }

Test_16_18.java

需要注意的是,必须给JPanel设置焦点,否则键盘无用。

时间: 2024-08-15 01:39:54

16.18的相关文章

2016年8月17日 星期三 --出埃及记 Exodus 16:18

And when they measured it by the omer, he who gathered much did not have too much, and he who gathered little did not have too little. Each one gathered as much as he needed. 及至用俄梅珥量一量,多收的也没有馀,少收的也没有缺,各人按着自己的饭量收取.

AutoCAD 04,07,08,11,14,16,18不同版本的选择建议

CAD作为目前最好的2D设计软件,其概念与重要性就不多说了,想要多了解的自行搜索.下面文章要讨论的主要是针对初学者对于其众多版本的选择提供一个参考,以免无从下手.在详细介绍每个版本前先来看一张各个版本的logo:上图列举了众多版本中变化比较大的几个logo,这里想要和大家说的,图片的第一行大家就别考虑了,仅供了解一下背景即可.其实图中还有一个重要版本的logo没有列出来,那就是众所周知的2004版本,软件logo图标如下图:2004版本已经作为经典和稳定的代名词存在,实际运用当中由于其功能的简单

我的Python成长之路---第三天---Python基础(13)---2016年1月16日(雾霾)

五.Python的常用的内置函数 Python为我们准备了大量的内置函数,如下图所示 这里我们只讨论红框内的内置函数 abs(x) 返回一个数的绝对值(模),参数可以是真说或浮点数 >>> abs(-10) 10 all(iterable) 如果可迭代对象(列表.元祖等)中所有的元素都是True,则返回True,否则返回False.相当于and >>> all([1, True, 1 == 1]) True any(iterable) 如果可迭代对象中任意一个元素是Tr

黑马程序员_JavaSE学习总结第16天_集合框架2

------- android培训.java培训.期待与您交流! ----------  16.01 ArrayList存储字符串并遍历 ArrayList类概述:底层数据结构是数组,查询快,增删慢,线程不安全,效率高 ArrayList类是List 接口的大小可变数组的实现.实现了所有可选列表操作,并允许包括 null在内的所有元素.除了实现 List 接口外,此类还提供一些方法来操作内部用来存储列表的数组的大小. 例: 1 public class Practice 2 { 3 public

JavaSE_ 集合框架 总目录(15~18)

黑马程序员_JavaSE学习总结第15天_集合框架1 15.01 对象数组的概述和使用15.02 对象数组的内存图解15.03 集合的由来及与数组的区别15.04 集合的继承体系图解15.05 Collection集合的功能概述15.06 Collection集合的基本功能测试15.07 Collection集合的高级功能测试15.08 集合的遍历之集合转数组遍历15.09 Collection存储自定义对象并遍历案例(使用数组)15.10 集合的遍历之迭代器遍历15.11 Collection

JavaSE学习总结第16天_集合框架2

16.01 ArrayList存储字符串并遍历 ArrayList类概述:底层数据结构是数组,查询快,增删慢,线程不安全,效率高 ArrayList类是List 接口的大小可变数组的实现.实现了所有可选列表操作,并允许包括 null在内的所有元素.除了实现 List 接口外,此类还提供一些方法来操作内部用来存储列表的数组的大小. 例: 1 public class Practice 2 { 3 public static void main(String[] args) 4 { 5 ArrayL

CSharpGL(18)分别处理glDrawArrays()和glDrawElements()两种方式下的拾取(ColorCodedPicking)

CSharpGL(18)分别处理glDrawArrays()和glDrawElements()两种方式下的拾取(ColorCodedPicking) 我在(Modern OpenGL用Shader拾取VBO内单一图元的思路和实现)记录了基于Color-Coded-Picking的拾取方法. 最近在整理CSharpGL时发现了一个问题:我只解决了用glDrawArrays();渲染时的拾取问题.如果是用glDrawElements();进行渲染,就会得到错误的图元. 本文就彻底解决这个拾取的问题.

将一个十进制数转化为16进制数

1 #include<stdio.h> 2 #include<stdlib.h> 3 4 int main() 5 { 6 int ival; 7 8 char result[8] = ""; 9 char array[17] = "0123456789ABCDEF"; 10 int index = -1; 11 printf("input the value:\n"); 12 scanf_s("%d"

[51单片机学习笔记FOUR]----16*16LED点阵

一.LED点阵发光原理 8*8单色单片机结构图如下: 从电路图中很简单的就可以看出来,想要点亮点阵中的某一个LED灯.只要使得那个灯所在的行输出高电平,所在列输出低电平就好. 二.点阵扫描实验 1 /*********************************************** 2 实验名称: 点阵扫描 3 实验说明: 扫描每个LED灯,检查点阵是否完好 4 实验时间: 2014/12/24 5 ******************************************