
绘制图形所用的函数类别分别为视图类、图形单元类和页面类。
对视图类,设置窗口的位置和大小;
对图形单元类,设置图形边界;
对页面类,只有当页面作为元件,该函数才起作用,设置元件边界。
一般构建窗口我们用SetBounds来构建:
SetBounds(int x,int y,int width,int height)
参数分别表示左边坐标、上边坐标、宽度、高度。
以前高中数学老师讲课时总是强调“数形结合”的方法来理解某种知识概念,这个方法的确很管用而且容易记得住。为了更详细的说明,我把它画出来分析便于理解:
其实我们见的比较多的是Rect类,而对于Rect类我们就可能容易混淆,所以在这里我把Rect类也拿出来比较一下,我们再看看Rect类:
Rect位于android.graphics下,表示一个矩形,由四条边的坐标组成,提供了一些设置方法。
new Rect(left,top,right,bottom)
那么矩形的宽度(width)为:right-left,矩形的高度(height)为:bottom-top
同样,来看图形更直观易懂:
那么我们来个平行线来实践一下效果:
package com.caiduping; import java.awt.Graphics;
import javax.swing.JFrame;
import javax.swing.JPanel; public class DrawLineFrame extends JFrame {
DrawLinePanel linePanel = new DrawLinePanel(); // 创建面板类的实例 public static void main(String args[]) { // 主方法
DrawLineFrame frame = new DrawLineFrame(); // 创建窗体类的实例
frame.setVisible(true); // 显示窗体
} public DrawLineFrame() {
super(); // 调用超类的构造方法
setTitle("绘制直线"); // 窗体标题
setBounds(100, 100, 273, 167); // 窗体的显示位置和大小
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); // 窗体关闭方式
add(linePanel); // 将面板类的实例添加到窗体容器中
} class DrawLinePanel extends JPanel { // 创建内部面板类
public void paint(Graphics g) { // 重写paint()方法
g.drawLine(70, 50, 180, 50); // 绘制第一条水平线
g.drawLine(70, 80, 180, 80); // 绘制第二条水平线
g.drawLine(110, 10, 140, 120); // 绘制斜线
}
}
}
run: