`

java基础部分和画图板总结

 
阅读更多

一、         基础部分

1.   类如何定义?类中可以定义哪些?

public class 类名{}

主函数定义为public static

类中可以定义类的属性和方法

系统会自动生成一个默认的构造函数,若想在生成对象时带参数,则重载构造函数

属性一般定义为 private static是为了让属性能直接用类名调用

方法一般定义为public

public类名必须和文件名相同

 

public class Student {

 

  /*

   * 无参构造函数

   */

  public Student(){}

  /*

   * name的构造函数

   */

  public Student(String s){name=s;}

 

  /*

   * 学生的姓名属性

   */

  private String name;

  /*

   * 学生的学分属性

   */

  private int score;

  public void print(){

     System.out.println(name+"玩的不亦乐乎");

  }

 

 

2.   类与对象的关系

类中定义了具体对象所共有的属性和方法,类可以生成具体的对象

 类是一个自定义的类型

  public static void main(String args[]){

     Student stu = new Student();

     stu.print();

  }

3.   构造器与普通方法

     创建某个类的对象时,格式:类名 变量名 = new 类名()这里的类名()就是构造器方法

重新定义构造器方法就叫构造器方法的重载,代码如下

/*

   * 无参构造函数

   */

  public Student(){}

  /*

   * name的构造函数

   */

  public Student(String s){name=s;}

 

 

1.  方法的重载

在一个类中可以定义多个同名,但是参数类型和数量不同的方法叫方法的重载

 

public class UNstudent extends Student{

  /**

   * 改写父类的study 方法

   */

  public void study(){

     System.out.print("大学生担心挂科");

  }

}

 

 

2.  this关键字

this在类中用来指代当前调用该方法的对象

public loginlistener(JTextField jt1,JPasswordField jt2){

       this.jt1 = jt1;

       this.jt2 = jt2; 

     }          

在构造器中可以调用构造器

3.  构造器方法和一般方法的区别

1)  构造器方法没有任何返回值的定义

2)  构造器方法是在创建对象的时候自动调用的

二、         画图板工程

1.  框架

///////////////drawFrame//////////////////////

在窗体上建立:

1.菜单栏JMemubar

//加一个jmenubar

     javax.swing.JMenuBar bar = new javax.swing.JMenuBar();

     this.setJMenuBar(bar);

    

     //加菜单

     javax.swing.JMenu jm1 = new javax.swing.JMenu("文件   ");

     javax.swing.JMenu jm2 = new javax.swing.JMenu("编辑   ");

     javax.swing.JMenu jm3 = new javax.swing.JMenu("查看   ");

    

     //给菜单条加菜单

     bar.add(jm1);

     bar.add(jm2);

     bar.add(jm2);

2.工具面板toolpanel

3.颜色面板 colorpanel

4.中间面板centerpanel

centerpanel上建立:

5.画板面板drawpanel

//centerpanel里加一个drawpanel

     javax.swing.JPanel drawpanel = new javax.swing.JPanel();

     centerpanel.add(drawpanel);

是在centerpanel上再加面板drawpanel

 

在窗体上设置

  6.设置布局管理器

//centerpanel加布局管理器

     java.awt.FlowLayout centerlay = new java.awt.FlowLayout(java.awt.FlowLayout.LEFT);

     centerpanel.setLayout(centerlay);

布局管理器的建立方法

7.设置监听器

在窗体上获取

8.画布

2.        功能

1)画直线

  public class Line extends Shape{

 

  Line(int x1,int y1,int x2,int y2,Color color){

     this.x1 = x1;

     this.y1 = y1;

     this.x2 = x2;

     this.y2 = y2;

     this.color = color;

  }

  public void draw(Graphics g) {

  g.setColor(color);

  g.drawLine(x1, y1, x2, y2); 

  }

取到形状及颜色 绘出直线

2)画矩形

3)画椭圆

4)画圆角矩形

3.        关键点

1)如何在两个类中公用一个对象

/**

 * 如何在两个类中共用同一个对象

 *    为了把另一个类中的对象JTxtFild用到另一个类中 就要在该类中设置参数jt1来接收这个对象

 *    所以就需要重载构造函数public loginlistener(JTextField jt1,JPasswordField jt2)

 *   来把这个对象JTxtFild 传进来

 *    然后才能在类的方法里用到这个共用的对象

 */

 

2)shape多态实现

shape是抽象类 各种形状都继承shape

shape有一个未定义的方法draw

public abstract void draw(java.awt.Graphics g);

直线类重写draw

public void draw(Graphics g) {

  g.setColor(color);

  g.drawLine(x1, y1, x2, y2); 

  }

listener

sh =new Line(x1,y1,x2,y2,color);//创建直线形状

     //把图形画出来

     sh.draw(g);

用父类的对象调用子类方法是实现了多态

3)重绘队列

首先明确在frame里重绘,而队列是在listener里建立,如何从listenerframe呢?

frame里实例化队列对象

MyQueue<Shape> shapes= new MyQueue<Shape>();

然后通过listener 的构造函数传入

//给画布加鼠标监听器

     DrawListener dlis = new DrawListener(g,Group1,Group2,shapes);

然后在listener里面改变 因为对象是传引用的 所以在listener里改变shapes frame里的shapes也会随之改变

最后通过遍历队列

  Class MyPanel extends JPanel {

 

     /**

      * 重写JPanel中用来绘制窗体的方法

      */

     public void paint(Graphics g) {

       // 调用父类的方法来正确的绘制窗体

       super.paint(g);

       System.out.println("绘制了");

       // 遍历形状队列

       for (int i = 0; i < shapes.size(); i++) {

          // 取出形状

         Shape sh = shapes.get(i);

          // 绘制

          sh.draw(g);

       }

     }

  }

这里为什么要重建一个MyPanel 因为我们获取画布只需要在drawpanel 而如果直接在frame中重写paint方法,则是在整个窗体上获取画布,浪费资源所以这里drawpanel建立时有一点小技巧

javax.swing.JPanel drawpanel = new MyPanel();

4)事件监听机制的理解

/**

 * 事件监听机制的理解

 *  在这个例子中  监听器是放在登录按钮上

 *  从安装上监听器开始,监听器始终处于工作状态(即建立好监听器对象)

 *  知道按下登录按钮  监听器对象开始自动调用方法 实现它的功能

 */

4.      错误点

1)  图片的插入

先将其变成图标建立图标对象 图标->标签->标签加到窗体

javax.swing.ImageIcon icon2 = new      javax.swing.ImageIcon("qq2.jpg");

     // 把图片插入

     JLabel secPic = new JLabel(icon2,JLabel.CENTER);

// 错点1:创建图标标签 要传入图标作为参数

     jf.add(secPic);                                // 错点2leftjlabel的静态变量所以要用类名调用

                                                      // 错点3:是要把流式布局管理器左对齐 因为图片在label

    

2)  设置窗体及各组件大小

/**

 *  1.  Dimension这个类是设置组件的宽度和高度

 *      setsize是设置窗体jframe  设置其他组件的size都是用这个类

 *      具体实现是

 *      //先建立一个dimension对象

 *      Dimension dim = new Dimension(90,20);

 *      //然后在这个组件里有一个方法叫 setPreferredSize 就可以设置组件的大小了

 *   box.setPreferredSize(dim);

 *      drawpanel.setPreferredSize(new Dimension(500,350));

 */

3)  JMenuBar的问题

/**

  *   2.错点: 加菜单条JMenuBar上去的时候 

 *     是加到窗体上 jf.setJMenuBar(bar);

 *     有专门的语句 而不是加组件的 add

 */    

 

 

4)  loginlistener

public class loginlistener implements java.awt.event.ActionListener{

     /*

      * 定义账号和密码  用来承接 输入的账号和密码

      */

     private JTextField jt1;

     private JPasswordField jt2;

    

     /*

      * 改写他的构造函数

      */

     public loginlistener(JTextField jt1,JPasswordField jt2){

       this.jt1 = jt1;

      this.jt2 = jt2;

      

     }

    

     /*

      *实现 ActionListener里的方法

      */

  public void actionPerformed(ActionEvent e) {

     /*

      * 调用文本输入框的gettext函数 来得到 输入的账号和密码

      */

     String name = jt1.getText();

     String pwd = jt2.getText();

     /*

      * 打印账号和密码到java界面上

      */

     System.out.print("账号:"+name+"\n"+"密码:"+pwd);

  }

 

}

 

/**

 * 难点1:监听器里的方法在创建对象的时候就自动调用了

 * 难点2ActionEvent e暂时还没有用到     

 * 难点3:要获得文本区域输入的文字 就要用文本对象来调用gettext    

 * 难点4:因为txtfild passfild都是login.java里的 所以为了在这里使用只能重载构造函数 

 * 难点5:这里的jt1 jt2 分别是 JTextField  JPasswordField类型 而非 string类型 

 * 因为 我们是在 单击这个登录按钮的时候 才将 内容传入并打印出来的

 * 在构造函数中 直接设成 string类型 则表明 把监听器 安到按钮上去的时候 内容就传进来了

 */

       

 

分享到:
评论

相关推荐

    java画图板的总结

    在Java编程语言中,画图板(Canvas)是图形用户界面(GUI)开发的一个关键组件。它是Java AWT(Abstract Window Toolkit)库的一部分,用于在窗口上绘制图形。Canvas类继承自Component,允许程序员直接在屏幕上进行...

    java画图板

    总结来说,《Java画图板》是一款集实用性和教学性于一体的软件,它结合了Java编程的理论与实践,为用户提供了一个简洁易用的图形绘制平台,同时也为学习Java语言的学生提供了一个良好的实践平台。通过设计和实现这样...

    huatu.rar_JAVA画图面板_绘画面板

    总结来说,"JAVA画图面板_绘画面板"涉及Java GUI编程中的自定义绘图技术,包括使用`Canvas`或`JPanel`创建画布,通过`Graphics`对象进行绘图,以及处理用户交互。"huatu.rar"中的内容很可能是为了帮助开发者理解这些...

    java画图板代码

    本项目的Java画图板代码实现了一个基本的图形编辑工具,涵盖了文件操作、图形绘制和颜色/字体设置等多个方面。通过继承`JFrame`和使用Swing组件,实现了简洁的用户界面。尽管部分功能尚待完善,如具体的文件读写逻辑...

    画图工具JAVA源代码

    总结来说,这个"画图工具JAVA源代码"项目涵盖了Java基础、GUI编程、事件处理、Java 2D绘图以及文件I/O等多方面的知识。通过学习和研究这个项目,开发者不仅可以提升Java编程技能,还能了解如何创建一个实际的图形...

    课程设计JAVA画板模拟画图工具.docx

    * JAVA基础知识:变量、数据类型、运算符、控制结构、函数等 * 图形编程技术:AWT、Swing等 * 面向对象编程的基本概念 * 画板界面设计图 * 模块概述 * 框架类DrawGraphic * 基本图形类 * 设计中的难点 总体设计 在...

    java AWT实现简单画图器(可打开、保存、清除界面、选择颜色等)

    Java AWT库是Java平台标准版(Java SE)的一部分,用于构建图形用户界面(GUI)。在本项目中,我们利用AWT(Abstract Window Toolkit)来创建一个简单的画图器,它具备基本的绘图功能,如绘制线条、圆形和矩形,并...

    java-huaturuanjian.zip_huaturuanjianzainao_java画图多边形_画笔java

    总结来说,这个Java画图程序充分利用了Java Swing库和`Graphics2D`类来提供一个交互式的图形绘制环境。它展示了如何在Java中实现图形用户界面、图形绘制、颜色选择、文件操作以及用户交互,为初学者提供了一个很好的...

    Java Swing画图小练习

    总结一下,这个Java Swing画图小练习涵盖了以下几个关键知识点: 1. 使用 `JFrame` 和 `JPanel` 创建GUI。 2. 在 `JPanel` 的 `paintComponent(Graphics g)` 方法中进行自定义绘图。 3. 实现 `MouseMotionListener`...

    JAVA设计报告

    颜色的选择和显示是画图板程序的重要组成部分。通过定义`Color`数组,可以预设多种颜色供用户选择。`nonceColor`面板用于实时显示当前选中的颜色,通过调用`setBackground()`方法来更新面板背景色,直观展示所选颜色...

    Java中的那些“流”之JAVA基础知识之我的理解8

    在给定的压缩包子文件的文件名称列表"画图板实现保存和读取"中,我们可以推测这是一个关于图形界面应用程序的例子,可能涉及保存和加载用户在画板上绘制的内容。在Java中,这通常涉及到序列化对象(如图形对象)到...

    java编写绘图软件的过程(带程序和代码)

    总结来说,开发一个Java绘图软件涵盖了以下几个关键点: 1. 使用Java GUI库(如AWT和Swing)创建用户界面。 2. 利用Graphics类或Graphics2D进行图形绘制。 3. 实现事件监听机制以响应用户输入。 4. 设计堆栈数据...

    java简易画板

    总结,这个Java简易画板项目不仅锻炼了学生的编程技能,还提高了他们对GUI设计和人机交互的理解。通过这个实践,初学者将能够更好地掌握Java编程,尤其是GUI应用开发,为后续的软件开发奠定坚实的基础。

    Java实战入门[一个资深Java培训老师倾力收藏].pdf

    本书《Java实战入门[一个资深Java培训老师倾力收藏]》为Java初学者提供了一条从零基础到实战开发的学习路径,涵盖了Java编程...每一章后面都附有总结和任务,帮助读者巩固学习成果,同时也为教师提供了课堂讨论的素材。

    java图形接口

    本篇内容重点介绍了一个利用Java AWT和Swing库创建的简单图形界面应用程序——画图板工具。 #### 二、核心概念与组件 ##### 1. Swing与AWT - **AWT (Abstract Window Toolkit)**:是Java早期提供的图形界面库,它...

    整理Java功课总结PPT学习教案.pptx

    这份PPT的学习教案主要涵盖了...通过这份PPT的学习,学生可以掌握Java编程中的基础概念和实际操作,为后续深入学习Java编程打下坚实的基础。同时,对于教师而言,这种总结方式有助于检查学生的作业完成情况和理解程度。

    java简单画板程序设计实验报告.doc

    总结,这个Java画板程序设计实验涵盖了基础的GUI编程概念,包括组件的创建、布局管理、事件处理以及基本的绘图算法。通过这个实验,学生可以深入理解Java图形界面编程,并提升问题解决和代码调试的能力。

Global site tag (gtag.js) - Google Analytics