⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 32.txt

📁 是一个 java 基础学习软件 有设计说明
💻 TXT
字号:
//
AWT 绘图
可以在任何Java组件上绘图(通常Canvas和Panel组件更适合用于绘图)
每个Java组件都有一个public void paint(Graphics g)方法专门用于绘图目的,每次重画该组件时都自动调用paint方法。
每个Java组件都有一个Graphics类型的属性,该属性(对象)真正完成在相应组件上的绘图功能。
Graphics类中实现了许多绘图方法:
	--  绘制边框(非填充图形)
	--  填充特定区域
	--  绘制其它形状图形
//
AWT 绘图举例
import java.awt.*;
class SubPanel extends Panel{
	public void paint(Graphics g){
		g.drawString("this is a drawing test!",20,20);		
		g.drawLine(30,60,100,120);
		g.draw3DRect(60,50,70,30,false);
	}	
}	
public class AWTDrawing2 {
    private Frame f = new Frame(" Hello Out There!");
    private SubPanel p = new SubPanel();
    public void launchFrame() {
	    f.add(p);
	    f.setSize(170,170);
	    f.setBackground( new Color(89,145,145));
	    f.setVisible( true); 
    }
    public static void main( String args[]) {
	    AWTDrawing2 guiWindow = new AWTDrawing2();
	    guiWindow.launchFrame();
    }
}
//
Graphics类

Graphics提供基本的绘图功能,update()及paint()通过操纵Graphics对象实现绘图操作;
AWT组件可以通过方法 getGraphics() 获得与其相关的Graphics对象;
Graphics类常用方法
public abstract void drawXXX(…)
public abstract void fillXXX(…)
public abstract void drawXXX(…)
setFont() / getFont() 
setColor() / getColor()
//
Font类

java.awt.Font类用于描述字体信息,其构造方法格式为:
	public Font(String name, int style, int size)
name : 字体名称
style :字体样式(Font.PLAIN, Font.BOLD, Font.ITALIC) 
size :字体大小
AWT组件可使用Component 类中定义的getFont(), setFont() 方法进行字体操作
可以通过GraphicsEnvironment类的方法getAvailableFontFamilyNames()获得JDK所支持的字体列表;
//

绘图实例

/**
   @version 1.30 1999-12-21
   @author Cay Horstmann
*/

import javax.swing.*;
import java.awt.*;
import java.lang.*;
import java.awt.geom.*;

// 显示框架,并得到屏幕像素


public class FrameTest
{
   public static void main(String[] args)
   {
      SimpleFrame frame = new SimpleFrame();
      frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
	  frame.setLocation(200,250);
	  frame.setVisible(true);
	  frame.setIconImage(Toolkit.getDefaultToolkit().getImage("1.gif"));
	}
}
//  add  Object to Panel

///  add Panel to Frame
class SimpleFrame extends JFrame
{
   public SimpleFrame()
   {
      setSize(WIDTH, HEIGHT);

   	  Toolkit kit = Toolkit.getDefaultToolkit();
      Dimension screenSize=kit.getScreenSize();
      int screenWidth=screenSize.width;
      int screenHeight=screenSize.height;

       String title = "屏幕像素:" +screenWidth+"*"+screenHeight;
   	   this.setTitle(title);

   //  create a panel
   	  SimplePanel panel = new SimplePanel();
   	  // add panel to frame
   	  Container contentPane = getContentPane();
   	  contentPane.add(panel);
	  //draw a string
   }
   public static final int WIDTH = 400;
   public static final int HEIGHT = 300;
}

class SimplePanel extends JPanel
{
	String str= new String("蝴蝶");
	public void paintComponent(Graphics g)
	{
    	super.paintComponent (g);
    	Graphics2D g2 = (Graphics2D)g;
	
	//draw  
		Point2D p = new Point2D.Double(X,Y);
		for(int i = 0;i<50000;i++)
		{
			Point2D p1 = new Point2D.Double(p.getX()+WIDTH*Math.cos(i/WIDTH),p.getY()+HEIGHT*Math.sin(i/HEIGHT));
			Line2D line = new Line2D.Double(p,p1);
	    	g2.draw(line);
	    }
   	//draw string
		Font font = new Font("华文隶书",Font.BOLD,30);
		g2.setFont(font);
		g2.setPaint(Color.blue);
		g2.drawString(str,50,50);
		
		g2.setPaint(Color.yellow);
		Ellipse2D  ellip = new Ellipse2D.Float();
		ellip.setFrame(new Rectangle2D.Float(X-40,Y-10,WIDTH/6,HEIGHT/6));
		g2.draw(ellip);		
		
		Ellipse2D  ellip2 = new Ellipse2D.Float();
		ellip2.setFrame(new Rectangle2D.Float(X+20,Y-10,WIDTH/6,HEIGHT/6));
		g2.draw(ellip2);		
				
/*
	//draw rectangle
		g2.setPaint(Color.red);
		Rectangle2D rect = new Rectangle2D.Float(X,Y,WIDTH,HEIGHT);
		g2.draw(rect);
	//draw Ellipse

	// draw line
		g2.setPaint(Color.white);
		Line2D line = new Line2D.Float(X,Y+HEIGHT/2,X+WIDTH,Y+HEIGHT/2);
		g2.draw(line);
	// draw circle
		g2.setPaint(Color.green);
		g2.setBackground(Color.cyan);
		Ellipse2D  circle = new Ellipse2D.Float();
		Point2D point1 = new Point2D.Float(X+WIDTH/2,Y+HEIGHT/2);
		Point2D point2 = new Point2D.Float(X+WIDTH/2+HEIGHT/2,Y);
		circle.setFrameFromCenter(point1,point2);
		g2.draw(circle);
		g2.setPaint(new Color(1,128,128));
		g2.fill(circle);
	*/
	}
	private static final int X = 160;
	private static final int Y = 160;
	private static final int WIDTH = 100;
	private static final int HEIGHT = 50;
	
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -