awt
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的更多相关文章
- AWT编程学习01(未完成)
本文资料来源:<java疯狂讲义> 作者:李刚 终于要学习这一部分了~~虽然很多人(明明是绝大多数的人)说学这个没有用...而且有点过时了...但我觉得很有意思啊...感兴趣就学~~反正多 ...
- AWT事件处理
AWT事件处理基本概念 AWT事件处理过程中,主要涉及3类对象: ① Event(事件):用户对组件的一个操作,称之为一个事件,以类的形式出现,例如,键盘操作对应的事件类是KeyEvent.其实例 ...
- AWT布局管理器
布局管理器 容器内可以存放各种组件,而组件的位置和大小是由容器内的布局管理器来决定的.在AWT中为我们提供了以下5种布局管理器: ① FlowLayout 流式布局管理器 ② BorderLa ...
- Java基础---AWT
流式布局FlowLayout package net.zyz; import java.awt.Button; import java.awt.FlowLayout; import java.awt. ...
- 用户图形界面(GUI)学习笔记(一)——Swing与AWT
一.Swing与AWT 对象窗口工具箱(Abstact Window Toolkit,AWT),是JAVA1.0刚出现的时候,包含的一个GUI设计类库.它将处理用户界面元素的任务委派给每个目标平台(W ...
- 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); ...
- 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 ...
- java.awt.Robot
import java.awt.AWTException; import java.awt.Robot; import java.awt.event.KeyEvent; public class Te ...
- java:提示Could not initialize class sun.awt.X11GraphicsEnvironment
前几天发现tomcat提示 Could not initialize class sun.awt.X11GraphicsEnvironment 问题.以为不验证,就没太关注,今天发现,有同事提示了个 ...
- paip.提升效率--gui 的选择--swing最佳实践swt awt
paip.提升效率--gui 的选择--swing最佳实践swt awt ////////////////弹出消息框. ////////////////myeclipse swing 开发最佳实践.. ...
随机推荐
- Sandcastle Help File Builder(.NET帮助文档工具)的版本选择心得——支持VS2010至VS2015,高版本项目文件问题
作者: zyl910 一.缘由 "Sandcastle Help File Builder"(简称SHFB)是一个很好用.NET 帮助文档生成工具. 但它的每个版本支持的VS版本范 ...
- mina websocket 粘包、断包、(丢包)解决心得
被这3个(其实是2个)问题坑惨了,目前没发现存在丢包问题,之前认为的丢包问题事实是不存在的. 粘包和断包的情况是存在的,这两个问题不怕,只要发送接收到的数据包顺序没有被打乱颠倒,一切都好办. 容易掉的 ...
- MySQL主从复制作用和原理
一.什么是主从复制?主从复制,是用来建立一个和主数据库完全一样的数据库环境,称为从数据库:主数据库一般是准实时的业务数据库. 二.主从复制的作用1.做数据的热备,作为后备数据库,主数据库服务器故障后, ...
- 【Linux】解决"no member named 'max_align_t'
编译遇到错误: /usr/bin/../lib/gcc/x86_64-linux-gnu/5.4.1/../../../../include/c++/5.4.1/cstddef:51:11: erro ...
- Sql Server 中将由逗号“,”分割的一个字符串转换为一个表集,并应用到 in 条件中
Sql Server 中将由逗号“,”分割的一个字符串,转换为一个表,并应用与 in 条件 ,,) 这样的语句和常用,但是如果in 后面的 1,2,3是变量怎么办呢,一般会用字符串连接的方式构造sql ...
- Hadoop:hdfs文件permission denied问题解析
Cron jobs can be scheduled, but fail to write parquet file and seems due to user permission of “yarn ...
- CRC码计算及校验原理的最通俗诠释
5.3.2 循环冗余校验检错方案 奇偶校验码(PCC)只能校验一位错误,本节所要介绍的循环冗余校验码(CRC)的检错能力更强,可以检出多位错误. 1. CRC校验原理 CRC校验原理看起来比 ...
- 浅从System.Web.Http.Owin的HttpMessageHandlerAdapter看适配器模式
本文版权归博客园和作者吴双本人共同所有 转载和爬虫请注明原文地址 www.cnblogs.com/tdws 一.写在前面 适配器模式(Adapter) 可用来在现有接口和不兼容的类之间进行适配.有助于 ...
- node-sass 安装失败 Failed at the node-sass@4.9.2 postinstall script的解决
控制台运行npm install时报错,报错信息如下: npm ERR! code ELIFECYCLEnpm ERR! errno 1npm ERR! node-sass@4.9.2 postins ...
- 为什么要用kafka、rabbit等消息队列
1.解耦: 允许你独立的扩展或修改两边的处理过程,只要确保它们遵守同样的接口约束. 2.冗余: 消息队列把数据进行持久化直到它们已经被完全处理,通过这一方式规避了数据丢失风险.许多消息队列所采用的&q ...