`

登陆界面、事件与创意画板总结

阅读更多

1、创建一个登陆窗口:
步骤:      1.定义一个QQFrame,让该类继承自JFrame。
2.在QQFrame类中定义主函数和初始化界面的方法。
3.在主函数中实例化QQFrame类的对象,调用初始化界面的方法。
4.在初始化界面的方法中,设置窗体的属性值(标题,大小,位置、可见,...)
5.创建容器或者元素控件添加到JFrame上。

2、实现点击登陆按钮时,弹出一个“创意画板”的界面:
创意画板界面的设置与上大体相同,不再赘述
首先需要创建QQListener( ActionListener接口)的对象再给事件源jbu添加动作监听器方法。
完成这步需要建一个QQListener类实现ActionListener接口,并重写接口中的抽象方法。
代码:

public class QQListener implements ActionListener{

 //重写接口中的抽象方法(事件处理方法)
public void actionPerformed(ActionEvent e) {

 System.out.println("您点击了"+e.getActionCommand()+"按钮");
   //创建QQ的对象
QQ qq=new QQ();
 //调用画板方法
qq.DrawBorder();
 }
}

 
注:实现接口的关键字:implements
格式:
public class 类 (extends 类) implements 接口   (先继承再实现){
//定义属性

//定义构造方法 普通方法

当类实现接口后,必须实现(重写)接口中的所有抽象方法,否则报错

}

3、实现在创意画板中单击鼠标画出椭圆的操作:
在这一步需要建一个DrawListener类实现MouseListener接口并实现其中所有的
抽象方法,但要实现画图操作还得在QQ类中的DrawBorder窗体方法(事件源)
里获取窗体的Graphics对象,由于抽象类中不能new对象,只能取,并且需要在窗体可见
之后获取其画笔对象    所以代码为:Graphics g=this.getGraphics();
并创建MouseListener的子类DrawListener的对象 给事件源添加鼠标监听器方法:

 

DrawListener l=new DrawListener(g);
this.addMouseListener(l);
以下是DrawListener类的代码:

public class DrawListener implements MouseListener{
 //声明一个Graphics类型的对象属性
private Graphics g;
 //构造方法  从QQ传过来的画笔对象
public DrawListener(Graphics g){
 this.g=g;
 }
 public void mouseClicked(MouseEvent e) {
 int x;
 int y;
 x=e.getX();
 y=e.getY();
 //g.drawRect(x, y, 150, 150);
 g.drawOval(x, y, 120, 150);
 g.drawArc(x+20, y+30, 50, 50, 30, 30);
 }
 public void mousePressed(MouseEvent e) {

 }
 public void mouseReleased(MouseEvent e) {
 }

 public void mouseEntered(MouseEvent e) {

 }
 public void mouseExited(MouseEvent e) {

 }
 }

 
只有组件才能成为事件源对象即动作响应的位置。



以下是我的登陆窗口和创意画板窗口的代码:
//1.定义一个QQFrame,让该类继承自JFrame。

public class QQ extends JFrame{

 //2.在QQFrame类中定义主函数和初始化界面的方法。
//程序入口
public static void main(String[] args) {
 //3.在主函数中实例化QQFrame类的对象,调用初始化界面的方法。
QQ qq=new QQ();
 //调用对象的方法
qq.initUI();

 }
 //创建一个窗体界面的方法
public void initUI(){

 //4.在初始化界面的方法中,设置窗体的属性值(标题,大小,位置,可见,...)
//创建流式布局对象!!!
FlowLayout fl=new FlowLayout();
 //加到界面上
this.setLayout(fl);

 this.setTitle("登录");//设置标题
this.setSize(300, 200);//设置大小
this.setLocationRelativeTo(null);//居中

//5.创建容器或者元素控件添加到JFrame上。
//添加标签:账号  
javax.swing.JLabel jlb1=new javax.swing.JLabel("账号");

this.add(jlb1);
 //输入框
JTextField jt=new JTextField(20);

 this.add(jt);

 //添加标签:密码
javax.swing.JLabel jlb2=new javax.swing.JLabel("密码");

this.add(jlb2);
 //输入框
JTextField jt1=new JTextField(20);

 this.add(jt1);

 //添加按钮:登录
JButton jbu=new JButton("登录");
this.add(jbu);

 this.setVisible(true);//置于最后  让窗体显现

this.setDefaultCloseOperation(3);//关闭窗体时 退出程序


//创建QQListener( ActionListener接口)的对象
QQListener ql=new QQListener();

 //给事件源jbu添加动作监听器方法
jbu.addActionListener(ql);

 }

 //创意画板
public void DrawBorder(){

 this.setTitle("创意画板");
this.setSize(800, 800);
 this.setLocationRelativeTo(null);//居中
this.setVisible(true);

 //获取窗体上的Graphics对象   抽象类中不能new对象 只能取
Graphics g=this.getGraphics();

 //创建MouseListener接口的子类DrawListener 的对象
DrawListener l=new DrawListener(g);
 //给事件源添加鼠标监听器方法
this.addMouseListener(l);

 }


}

 
至此可实现:程序运行出现一个登陆窗口,点击登陆按钮出现一个创意画板窗口,在创意画板上能够画圆。

                                  梣梓
                             2014、09、25

 

 

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics