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.* ...
随机推荐
- 电脑上已经安装mysql之后安装wamp,wamp中的mysql无法启动的解决办法
Wampserver安装完成后无法启动MySQL这有可能是你之前安装过MysqL,因为wampserver内置MySQL.解决的方法就是配置环境变量. 找到我的电脑或计算机右键,打开属性,然后打开高级 ...
- 随记,C#修饰符访问级别
private : 私有成员, 在类的内部才可以访问. protected : 保护成员,该类内部和继承类中可以访问. (无修饰符时默认)internal: 在同一命名空间内可以访问.public : ...
- 尝鲜党:Nexus5、6刷安卓M教程
说明: 进入recovery的命令:adb reboot recovery 进入bootloader的命令:adb reboot bootloader 概述 F:\Nexus5\AndroidM\ha ...
- android实现文本复制到剪切板功能(ClipboardManager)
Android也有剪切板(ClipboardManager),可以复制一些有用的文本到剪贴板,以便用户可以粘贴的地方使用,下面是使用方法 注意:导包的时候 API 11之前: android.te ...
- hdu 1724 Ellipse simpson积分
/* hdu 1724 Ellipse simpson积分 求椭圆的部分面积 simpson积分法 http://zh.wikipedia.org/zh-tw/%E8%BE%9B%E6%99%AE%E ...
- DLNA介绍(包含UPnP,2011/6/20 更新)
这部分的内容大多来源于网络及官方文档,依照自己的翻译理解整理所成.东西比較多,从头慢慢看还是能够懂个大概的. 文件夹: 一.DNLA的建立 二.DLNA的成员 三.DLNA标准的制定 四.DLNA的设 ...
- Mapreduce运行过程分析(基于Hadoop2.4)——(一)
1 概述 该瞅瞅MapReduce的内部执行原理了,曾经仅仅知道个皮毛,再不搞搞,不然怎么死的都不晓得.下文会以2.4版本号中的WordCount这个经典样例作为分析的切入点.一步步来看里面究竟是个什 ...
- [RxJS] Refactoring CombineLatest to WithLatestFrom
This lesson shows why it’s preferable to using withLatestFrom instead of combineLatest in certain sc ...
- DevExpress GridView.CustomSummaryCalculate 实现自定义Group Summary
--首发于博客园, 转载请保留链接 博客原文 DevExpress Documentation官方地址:GridView.CustomSummaryCalculate Event 1. 概要 界面上 ...
- javaScript模块化一
1. Module模式的基本特性 A) 模块化 可重用 B) 封装了变量和function 和全局的namespace不接触 松耦合. C) 只暴露可用public的方法 其他私有方法全部隐藏 ...