JFrame画图基础和事件监听
消息框
JOptionPane.showMessageDialog(mine.this, "删除不成功!");
画图
class MyJPanel extends JPanel //继承面板类
{
public void paint(Graphics g) //覆盖父类的方法,paint相当于画图
{
g.drawOval(30, 30, 80, 80); //画圆
g.drawLine(100, 100, 200, 200); //画直线 ,两点坐标
g.setColor(Color.RED);
g.drawRect(50,50,50,50);
g.draw3DRect(100, 100, 100, 100,true); //画矩形 ,参数是做上角坐标和长宽
g.setColor(Color.BLUE);
g.fillRect(100, 100, 100, 100); //填充矩形
g.fill3DRect(50, 50, 50, 50, false); //填充3d效果的矩形 }
}
导入图片
Image tp=Toolkit.getDefaultToolkit().getImage(Panel.class.getResource("/龙猫2.jpg")); //固定格式,得到图片
g.drawImage(tp, 30, 30, 100, 100, this); //画图
绘文字
g.setColor(Color.BLUE);
g.setFont(new Font("华文彩云",Font.BOLD,50));
g.drawString("很强", 100, 100);
监听事件
JButton bt=new JButton("运行");
bt.addActionListener(this); //自己的
MyListener jt=new MyListener();
bt.addActionListener(jt); //另一个
bt.setActionCommand("yunxing");
public void actionPerformed(ActionEvent e) //必须实现监听器的抽象方法
{
if(e.getActionCommand()=="yunxing")
{
System.out.println("运行成功");
}
}
}
class MyListener implements ActionListener //继承父类
{
public void actionPerformed(ActionEvent e) //实现这个抽象函数
{
if(e.getActionCommand()=="yunxing") System.out.println("很强");
}
}
键盘事件
this.add(mjp);
this.addKeyListener(mjp); //要添加监听器 class MyJPanel extends JPanel implements KeyListener //给面板实现键盘监听接口,以下3个函数必须实现
{
int x=50,y=50;
public void paint(Graphics g)
{
super.paint(g); //调用父类
g.fillRect(x, y, 50, 50); //画矩形
}
public void keyPressed(KeyEvent e) { //按键事件
// TODO Auto-generated method stub
//System.out.println("键盘被按下");
//System.out.println((char)e.getKeyCode());
if(e.getKeyCode()==KeyEvent.VK_UP){ y-=5; }
else if(e.getKeyCode()==KeyEvent.VK_DOWN){ y+=5; }
else if(e.getKeyCode()==KeyEvent.VK_LEFT){ x-=5; }
else if(e.getKeyCode()==KeyEvent.VK_RIGHT){ x+=5; }
this.repaint(); }
public void keyReleased(KeyEvent e) { //松开事件
// TODO Auto-generated method stub }
public void keyTyped(KeyEvent e) { //打字事件
// TODO Auto-generated method stub }
}
鼠标事件
this.add(mjp);
this.addMouseListener(mjp); class MyJPanel extends JPanel implements MouseListener //以下5个函数要写
{
int x=50,y=50;
public void paint(Graphics g)
{
super.paint(g);
g.drawOval(x, y, 50, 50);
}
public void mouseClicked(MouseEvent e) //鼠标点击事件
{
System.out.println(e.getX()+","+e.getY());
x=e.getX();
y=e.getY();
this.repaint();
}
public void mouseReleased(MouseEvent e) //松开
{ }
public void mouseExited(MouseEvent e) //出界面
{ }
public void mousePressed(MouseEvent e) //按下
{ }
public void mouseEntered(MouseEvent e) //进入界面
{ }
}
增加新的对话窗口
public void actionPerformed(ActionEvent e) //原来窗口的监听
{
if(e.getActionCommand()=="tianjia")
{
Add add=new Add(this,"ok",true); //新的对话界面 }
}
class Add extends JDialog implements ActionListener
{
public Add(Frame fck,String ckm,boolean msck)
{
super(fck,ckm,msck); //父类
//this.setTitle("学生信息");
this.setSize(500, 500);
this.setLocation(100, 100);
JButton jb=new JButton("取消");
jb.addActionListener(this);
jb.setActionCommand("quxiao");
this.add(jb);
this.setDefaultCloseOperation(JDialog.DISPOSE_ON_CLOSE);
this.setVisible(true);
}
public void actionPerformed(ActionEvent e)
{
if(e.getActionCommand()=="quxiao")
{
this.dispose(); //关闭窗口
}
}
}
JFrame画图基础和事件监听的更多相关文章
- JS基础(二)事件监听练习之table鼠标悬停行变色
JS监听事件简单学习: [object].addEvent("事件类型","处理函数","冒泡事件或捕获事件"); [object].r ...
- js基础——事件绑定(事件监听)
JavaScript事件一共有三种监听方法分别如下: 1.事件监听一夹杂在html标签内 <div id="box" onClick="alert('HELLO W ...
- Java中的事件监听机制
鼠标事件监听机制的三个方面: 1.事件源对象: 事件源对象就是能够产生动作的对象.在Java语言中所有的容器组件和元素组件都是事件监听中的事件源对象.Java中根据事件的动作来区分不同的事件源对象,动 ...
- java 事件监听 - 鼠标
java 事件监听 - 鼠标 //事件监听 //鼠标事件监听 //鼠标事件监听有两个实现接口 //1.MouseListener 普通的鼠标操作 //2.MouseMotionListener 鼠标的 ...
- java 事件监听 - 键盘
java 事件监听 - 键盘 //事件监听 //键盘事件监听,写了一个小案例,按上下左右,改变圆形的位置,圆形可以移动 import java.awt.*; import javax.swing.*; ...
- java 事件监听 - 控件
java 事件监听 //事件监听 //事件监听,写了一个小案例,点击按钮改变面板的颜色. import java.awt.*; import javax.swing.*; import java.aw ...
- java事件监听
获取事件监听需要获取实现ActionListener接口的方法, public class SimpleEvent extends JFrame{ private JButton jb=new ...
- android开发事件监听
第一种:匿名内部类作为事件监听器类 大部分时候,事件处理器都没有什么利用价值(可利用代码通常都被抽象成了业务逻辑方法),因此大部分事件监听器只是临时使用一次,所以使用匿名内部类形式的事件监听器更合适, ...
- 9、JcomboBox下拉框事件监听
9.JcomboBox下拉框事件监听 JComboBox()的事件监听类ItemListener.其范例代码如下: import java.awt.*; import java.awt.event.* ...
随机推荐
- mybatis + log4j 打印mybatis的sql
项目中使用log4j管理日志,同时使用了mybatis 在log4j中rootLogger级别是info的情况下正常是不会打印sql出来的,这个时候设置如下: log4j.rootLogger=inf ...
- 关于使用mybatis插件自动生成代码
1.安装 mybatis 插件: 在 eclipse 中 点击 help-->Install New Software...--> Add --> local 选择插件中eclip ...
- AndroidUI开源组件库BottomView 第三方自定义UI控件
这里分享一个Android的非常经典实用而且简单方便的第三方UI控件库:BottomView(小米的米UI也用到了这个) 原文 http://blog.csdn.net/opzoonzhuzheng ...
- Oracle Directory文件夹的知识
在上一章介绍expdp/impdp时曾使用过DIRECTORY这个概念,以下再简单说明下DIRECTORY的点点滴滴. MOS上对DIRECTORY的解释(266875.1): (1).基于服务端 v ...
- @IBDesignable和@IBInspectable
近期一直在看苹果公司提供的两本swift官方教程电子书,一部是<The Swift Programming Language>,还有一部是<Using Swift With Coco ...
- SD卡中FAT32文件格式高速入门(图文具体介绍)
说明: MBR :Master Boot Record ( 主引导记录) DBR :DOS Boot Record ( 引导扇区) FAT :File Allocation Table ( 文件分配表 ...
- C语言排序算法复习
排序算法有很多种,这里在复习和分析的基础上,做一个自己的总结: 首先要知道有哪些排序算法,google一下,有云C语言7大经典排序算法(也有8大).主要包括冒泡排序,快速排序,选择排序,插入排序,希尔 ...
- 题目:[NOIP1999]拦截导弹(最长非递增子序列DP) O(n^2)和O(n*log(n))的两种做法
题目:[NOIP1999]拦截导弹 问题编号:217 题目描述 某国为了防御敌国的导弹袭击,发展出一种导弹拦截系统.但是这种导弹拦截系统有一个缺陷:虽然它的第一发炮弹能够到达任意的高度,但是以后每一发 ...
- Ubunte 11.4 下安装 SSH遇到的问题
第一次安装报了一堆错,主要是也http 404 not found之类的,搜索了一番怀疑是apt的source list的问题. 网上找到一份替换之,我用的是搜狐的服务器.网址如下: http://b ...
- Hadoop shuffle与排序
Mapreduce为了确保每个reducer的输入都按键排序.系统执行排序的过程-----将map的输出作为输入传给reducer 称为shuffle.学习shuffle是如何工作的有助于我们理解ma ...