📄 fillpaintframe.java
字号:
package fillpaint;import java.awt.*;import java.awt.event.*;import javax.swing.*;import java.awt.geom.*;import java.awt.image.*;import java.util.*;/** * <p>Title: fill Paint Demo</p> * <p>Description: This is a fillPaint Demo</p> * <p>Copyright: Copyright (c) 2002</p> * <p>Company: D6-125</p> * @author liujun * @version 1.0 */public class fillPaintFrame extends JFrame { JPanel contentPane; BorderLayout borderLayout1 = new BorderLayout(); //Construct the frame public fillPaintFrame() { enableEvents(AWTEvent.WINDOW_EVENT_MASK); try { jbInit(); } catch(Exception e) { e.printStackTrace(); } } //Component initialization private void jbInit() throws Exception { //setIconImage(Toolkit.getDefaultToolkit().createImage(fillPaintFrame.class.getResource("[Your Icon]"))); contentPane = (JPanel) this.getContentPane(); contentPane.setLayout(borderLayout1); this.setSize(new Dimension(400, 300)); this.setTitle("fillPaint Frame Demo"); } //Overridden so we can exit when window is closed protected void processWindowEvent(WindowEvent e) { super.processWindowEvent(e); if (e.getID() == WindowEvent.WINDOW_CLOSING) { System.exit(0); } } public void paint(Graphics g) { /**@todo: Override this java.awt.Container method*/ super.paint( g); Paint paint;//声明Paint类 BufferedImage bufferedImage;//声明图像缓冲区 Ellipse2D circle;//声明椭圆类 Graphics2D g2 = (Graphics2D)g;//使用Java 2D //使用单色填充 paint = Color.red; // Color implements Paint g2.setPaint(paint);//设置填充类型 circle = new Ellipse2D.Double(10, 60, 140, 140);//构造一个圆 g2.fill(circle);//填充圆 //画出标题 g2.drawString("使用单色填充",40,230); g2.drawString("使用双色过渡填充",200,230); g2.drawString("使用图像填充",390,230); //使用双色过渡填充 paint = new GradientPaint(180, 60, Color.red, 280, 160, Color.yellow);//构造GradientPaint类 g2.setPaint(paint);//设置填充类型 circle = new Ellipse2D.Double(180, 60, 140, 140);//构造一个圆 g2.fill(circle); //使用图像填充 Image image = Toolkit.getDefaultToolkit().getImage//构造Image类,得到图像 ("E:\\jb6exam\\fillPaint\\fillPaint\\src\\fillpaint\\JBXMedium.gif"); MediaTracker tracker = new MediaTracker(this); tracker.addImage(image, 0);//读取图像,并跟踪读过程 try { tracker.waitForID(0); } catch (InterruptedException e) {} bufferedImage = new BufferedImage(image.getWidth(null),//构造图像缓冲区 image.getHeight(null), BufferedImage.TYPE_INT_ARGB); Graphics2D bufg = bufferedImage.createGraphics();//取得图像环境拖入到缓冲区 bufg.drawImage(image, 0, 0, null);//读取图像到缓冲区 Rectangle2D anchor = new Rectangle2D.Double(0, 0,//设置anchor矩形来表示图像填充的大小 bufferedImage.getWidth()/3, bufferedImage.getHeight()/3); paint = new TexturePaint(bufferedImage, anchor);//构造TexturePaint类 g2.setPaint(paint);//设置填充类型 circle = new Ellipse2D.Double(350, 60, 140, 140);//构造一个圆 g2.fill(circle);//填充圆 }}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -