public class MouseTest extends Frame{

    private static final long serialVersionUID = 5437685336595276319L;
List<Point> list = new ArrayList<Point>(); public void addPoint(Point p){ list.add(p);
} /**
* 重写画笔
*/
@Override
public void paint(Graphics g) {
Color c = g.getColor();
for (Point point : list) {
g.setColor(Color.white);
g.fillOval(point.x, point.y, 10, 10);
}
g.setColor(c); } public static void main(String[] args) {
final MouseTest f = new MouseTest();
f.setBackground(Color.black);
f.setLayout(null);
f.setBounds(600, 100, 300, 300);
f.setVisible(true);
//窗口添加鼠标点击事件
f.addMouseListener(new MouseAdapter() {
@Override
public void mousePressed(MouseEvent e) {
MouseTest f = (MouseTest) e.getSource();
f.addPoint(new Point(e.getX(), e.getY()));
//frame重画
f.repaint();
System.out.println("鼠标点击");
}
}); f.addWindowListener(new WindowAdapter() {
@Override
public void windowClosing(WindowEvent e) {
MouseTest f2 = (MouseTest) e.getSource();
f2.setVisible(false);
//f.setVisible(false);
//0正常退出,-1非正常退出
System.exit(0); }
}); } }
public class FrameTest extends Frame{

    @Override
public void paint(Graphics g) {
Color c = g.getColor();
g.setColor(Color.green);
g.drawLine(100, 100, 200, 200);
g.setColor(c); //super.paint(g);
} public void createFrame(String title,int x,int y,int w,int h){
this.setTitle(title);
this.setLayout(null); //this.setLayout(new FlowLayout(FlowLayout.CENTER,20,20)); //new BorderLayout();
//BorderLayout.CENTER;
//new GridLayout(3, 2);3行两列 this.setBounds(x, y, w, h);
this.setBackground(Color.blue);
Panel panel = new Panel();
panel.setBounds(w/4, h/4, w/2, h/2);
panel.setBackground(Color.yellow);
this.add(panel); //this.add(panel, BorderLayout.NORTH); this.setVisible(true); } public static void main(String[] args) {
FrameTest frameTest = new FrameTest();
frameTest.createFrame("测试", 600, 400, 600, 600); /*Frame frame = new FrameTest();
//frame.setLayout(null);
frame.setBounds(200, 200, 300, 300);
Button b = new Button("denglu"); b.addActionListener(new ActionListener() { @Override
public void actionPerformed(ActionEvent e) {
System.out.println("点击登陆"); }
}); frame.add(b); TextField field = new TextField();
field.addActionListener(new ActionListener() { @Override
public void actionPerformed(ActionEvent e) {
TextField tf = (TextField) e.getSource();
System.out.println(tf.getText());
tf.setText("");
}
});
field.setEchoChar('*');
frame.add(field); //frame.pack();
frame.setVisible(true);*/ } }

键盘

import java.awt.Frame;
import java.awt.event.KeyAdapter;
import java.awt.event.KeyEvent;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent; public class KeyTest extends Frame{ public static void main(String[] args) { KeyTest k = new KeyTest(); k.setLayout(null);
k.setBounds(600, 100, 300, 300);
k.setVisible(true);
//键盘按下事件
k.addKeyListener(new KeyAdapter() {
@Override
public void keyPressed(KeyEvent e) {
//System.out.println("键盘按下-->"+e.getKeyCode());
//w s a d 上下左右
switch (e.getKeyCode()) {
case 87:
System.out.println("上");
break;
case 83:
System.out.println("下");
break;
case 65:
System.out.println("左");
break;
case 68:
System.out.println("右");
break;
default:
break;
} }
}); k.addWindowListener(new WindowAdapter() {
@Override
public void windowClosing(WindowEvent e) {
KeyTest k2 = (KeyTest) e.getSource();
k2.setVisible(false);
System.exit(0);
}
});
} }

awt的更多相关文章

  1. AWT编程学习01(未完成)

    本文资料来源:<java疯狂讲义> 作者:李刚 终于要学习这一部分了~~虽然很多人(明明是绝大多数的人)说学这个没有用...而且有点过时了...但我觉得很有意思啊...感兴趣就学~~反正多 ...

  2. AWT事件处理

    AWT事件处理基本概念 AWT事件处理过程中,主要涉及3类对象: ①   Event(事件):用户对组件的一个操作,称之为一个事件,以类的形式出现,例如,键盘操作对应的事件类是KeyEvent.其实例 ...

  3. AWT布局管理器

    布局管理器 容器内可以存放各种组件,而组件的位置和大小是由容器内的布局管理器来决定的.在AWT中为我们提供了以下5种布局管理器: ①   FlowLayout 流式布局管理器 ②   BorderLa ...

  4. Java基础---AWT

    流式布局FlowLayout package net.zyz; import java.awt.Button; import java.awt.FlowLayout; import java.awt. ...

  5. 用户图形界面(GUI)学习笔记(一)——Swing与AWT

    一.Swing与AWT 对象窗口工具箱(Abstact Window Toolkit,AWT),是JAVA1.0刚出现的时候,包含的一个GUI设计类库.它将处理用户界面元素的任务委派给每个目标平台(W ...

  6. Atitit.java图片图像处理attilax总结  BufferedImage extends java.awt.Image获取图像像素点image.getRGB(i, lineIndex); 图片剪辑/AtiPlatf_cms/src/com/attilax/img/imgx.javacutImage图片处理titit 判断判断一张图片是否包含另一张小图片 atitit 图片去噪算法的原理与

    Atitit.java图片图像处理attilax总结 BufferedImage extends java.awt.Image 获取图像像素点 image.getRGB(i, lineIndex); ...

  7. tomcat 启动参数 Xms, Xmx, XX:MaxNewSize, XX:PermSize, -XX:MaxPermSize, Djava.awt.headless

    在 tomcat/bin/catalina.sh 的 第一行#!/bin/sh 下添加 JAVA_OPTS="-server -Xms512m -Xmx1024m -XX:MaxNewSiz ...

  8. java.awt.Robot

    import java.awt.AWTException; import java.awt.Robot; import java.awt.event.KeyEvent; public class Te ...

  9. java:提示Could not initialize class sun.awt.X11GraphicsEnvironment

    前几天发现tomcat提示 Could not initialize class sun.awt.X11GraphicsEnvironment  问题.以为不验证,就没太关注,今天发现,有同事提示了个 ...

  10. paip.提升效率--gui 的选择--swing最佳实践swt awt

    paip.提升效率--gui 的选择--swing最佳实践swt awt ////////////////弹出消息框. ////////////////myeclipse swing 开发最佳实践.. ...

随机推荐

  1. 通过__block的作用深入研究block

    block普通引用 默认情况下,在block中访问外部变量是通过复制一个变量来操作的,既可以读,但是写操作不对原变量生效,下面通过代码来举证 NSString *a = @"testa&qu ...

  2. 物联网全景动态图谱2.0|PaaS物联网平台汇总(上篇)

    物联网智库 原创 物联网智库 整理发布 转载请注明来源和出处 ------   [导读]   ------ 毫无疑问,2018年物联网对行业的深度变革才刚刚开启. 物联网产业链企业的质与量将进入全面爆 ...

  3. 【转载】linux系统时间自动同步:ntp

    NTP基本介绍 NTP(Network TimeProtocol,网络时间协议),使用来使本地机器与服务端机器时间保持同步的一种协议.如果我们只有一台机器那么只需要安装NTP客户端ntpdate这个包 ...

  4. 关于go语言的测试相关内容笔记

    其实之前对于测试自己一直比较弱,不管是python的还是go的,关于测试这块并没有非常注重,这次就好好整理一下关于go的测试 单元测试 Go程序主要包含三类测试: 功能测试(test).基准测试(be ...

  5. Linux中安装mongodb

    1,使用二进制包安装Mongodb 使用wget https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-3.6.0.tgz 下载编译好的二进制包( ...

  6. 【OpenFOAM案例】03 Docker安装OpenFOAM

    "工欲善其事必先利其器",软件装不上,讲再多的使用技巧也是白搭.近期不少留言说OpenFOAM不容易安装,今天来谈谈如何在Linux下利用Docker安装OpenFOAM. Lin ...

  7. 线程封装组件(BackgroundWorker)和线程(Thread)

    BackgroundWorker是微软的在.net Framwork中添加的一个组件,主要对线程的访问提供了一种安全的方式.简单的说就是对Thread的一次封装. BackgroundWorker位于 ...

  8. svn安装教程

    svn服务器端下载(VisualSVN) 安装包,选择windows版的VisualSVN-Server https://www.visualsvn.com/downloads/ svn客户端下载(T ...

  9. C语言 · 8皇后问题改编

    8皇后问题(改编) 问题描述 规则同8皇后问题,但是棋盘上每格都有一个数字,要求八皇后所在格子数字之和最大. 输入格式 一个8*8的棋盘. 输出格式 所能得到的最大数字和 样例输入 1 2 3 4 5 ...

  10. 我对CopyOnWrite的思考

    CopyOnWrite 后文中表述为 COW CopyOnWrite容器即写的时候复制一个新的容器进行写:通俗的理解是当我们往一个容器添加元素的时候,不直接往当前容器添加,而是先将当前容器进行Copy ...