首页 > 代码库 > 图形程序设计
图形程序设计
窗口:
窗口放置在左上角水平x像素,垂直y像素的位置:setLocation(x,y)
设置窗口的大小:setSize(width,height)
同时设置窗口的位置和大小:setBounds(x,y,width,height)
关闭窗口的相应动作:frame.setDefultCloseOperation(JFrame.EXIT_ON_CLOSE)
在显示窗口之前调用setLocationByPlatform(true)窗口系统会拾取窗口的位置
框架:获取或设置title属性,这个属性确定框架标题栏中的文字
public String getTitle()
public void setTitle(String Title)
框架大小:(放置在main中或某个构造函数中)
Toolkit kit = Toolkit.getDefaultToolkit();Dimension screenSize = kit.getScreenSize(); //返回屏幕大小int screenWidth = screenSize.width;int screenHeight = screenSize.height;setSize(screenWidth/2,screenHeight/2);//将框架大小设置为屏幕的一半setLocationByPlatform(true);//然后告知窗口系统定位框架
将图像设置为框架的图标:
Image img = kit.getImage("icon.gif"); setIconImage(img); setTitle("SizedFrame");
将框架设置为最大:
frame.setExtendedState(Frame.MAXIMIZED_BOTH);
在组件中显示信息:
Graphics g = null; g.drawString("NOT A HELLO WORLD,world program", 75, 100);
用背景色绘制面板
super.paintComponent(g);
2D图形:
画一个矩形:
Graphics g = null; Graphics2D g2 = (Graphics2D) g; double leftx = 100; double topy = 100; double width = 200; double height = 150; Rectangle2D rect = new Rectangle2D.Double(leftx,topy,width,height);//Rectangle2D.float()
g2.draw(rect);
画一个封闭的椭圆:
Ellipse2D ellipse = new Ellipse2D.Double(); ellipse.setFrame(rect); g2.draw(ellipse);
画一条直线:
g2.draw(new Line2D.Double(leftx,topy,leftx+width,topy+height));
画个同心圆:
double centerX = rect.getCenterX(); double centerY = rect.getCenterY(); double radius = 150; Ellipse2D circle = new Ellipse2D.Double(); circle.setFrameFromCenter(centerX, centerY, centerX+radius, centerY+radius); g2.draw(circle);
返回闭合矩形的中心,以及最小最大x,y坐标值
double getCenterX()
double getCenterX()
double getMinX()
double getMinY()
double getMaxX()
double getMaxY()
返回闭合矩形的宽和高。
double getWidth()
double getHeight()
返回闭合矩形左上角x和y坐标
double getX()
double getY()
利用给定坐标画一个点
Point2D.Double(double x,double y)
颜色
填充一个封闭图形
Rectangle2D rect = ..; g2.setPaint(Color.RED); g2.fill(rect);
定制颜色:
g2.setPaint(new Color(0,128,128));
g2.drawString("Welcome!",75,125);
设置背景颜色:
MyComponent p = new MyComponent();
p.setBackground(Color.PINk);
获取或改变当前颜色。所有后续绘图操作都使用这个新颜色:
void setColor(Color red);// green.......and so on
获取或设置前景颜色
void setForeground(Color c);
为文本设定特殊字体
使用系统中的14号加粗的标准sansserif字体显示字符串hello world;字体风格还有 Font.PLAIN,Font.ITALIC, Font.BOLD+Font.ITALIC
Font sansbold14 = new Font("SansSerif",Font.BOLD,14); g2.setFont(sansbold14); String message = "Hello World!"; g2.drawString(message,75,100);
创建一个新字体对象:Font(String name,innt style,int size)
返回字体名:String getFontName()
返回家族名(姓):String getFamily()
如果采用逻辑字体名创建字体,将返回逻辑字体,例如sansserif,否则返回字体名:String getName()
返回包围这个字符串的矩形:
Rectangle2D getStringBounds(String s,FontRenderContext context)
返回测定字符串宽度的一个线性metrics对象
LineMetrics getLineMetrics(String s,FontRenderContext context)
Font deriveFont(int style)
Font deriveFont(float size)
返回一个新字体,除给定大小和字体风格外,其余与原字体一样
Font deriveFont(int style,float size)
返回字体上坡度:float getAscent()
返回字体下坡度:float getDscent()
返回字体行间距:float getLeading()
返回字体总高度:float getHeight()
获取或设置当前的字体。这种字体将被运用于后续的文本绘制操作中:
Font getFont()
void setFont(Font font)
采用当前字体和颜色绘制一个字符串
void drawString(String str,int x,int y)(将要绘制的字符串,字符串开始的x坐标,基线的y坐标)
返回这个图形文本中,指定字体特征的字体绘制环境:
FontRenderContext getFontRenderContext()
图像
读取一个图像(存储在本地):
String filename = "....";例如ball.gif
Image image = ImageIO.read(new File(filename));
如果不在本地:
String urlname = "....";例如http//baidu.com.......
Image image = ImageIO.read(new URL(urlname));
用:来显示图像
Graphics g = null;
g.drawImage(image,x,y,null);
从给定的文件或URl上读取图像:
static BufferedImage read(File f)
static BufferedImage read(URL u)
绘制一幅非比例图像:(可能未绘制完毕就返回)
boolean drawImage(Image img,int x,int y,ImageObserver observer )(将要绘制的图像,左上角x坐标,y坐标,绘制进程中要通知的对象(可能是null))
绘制一幅比例图像:(可能未绘制完毕就返回)
boolean drawImage(Image img,int x,int y,int width,int height,ImageObserver observer )
(将要绘制的图像,左上角x坐标,y坐标,图像的宽度,高度,绘制进程中要通知的对象(可能是null))
拷贝屏幕的一块区域:
void copyArea(int x,int y,int width,int height,int dx,int dy)
(原始区域的左上角x坐标,y坐标,原始区域的宽度,高度,原始区域到目标区域的水平距离,垂直距离)
图形程序设计