Java开发网 Java开发网
注册 | 登录 | 帮助 | 搜索 | 排行榜 | 发帖统计  

您没有登录

» Java开发网 » Java SE 综合讨论区  

按打印兼容模式打印这个话题 打印话题    把这个话题寄给朋友 寄给朋友    该主题的所有更新都将Email到你的邮箱 订阅主题
flat modethreaded modego to previous topicgo to next topicgo to back
作者 import java.awt.Shape的问题!
wqq0712





发贴: 26
积分: 0
于 2006-09-04 19:51 user profilesend a private message to usersearch all posts byselect and copy to clipboard. 
ie only, sorry for netscape users:-)add this post to my favorite list

import java.awt.*;
import java.awt.Shape; //不加这句的结果...
import java.awt.event.*;
import java.awt.geom.*;
import javax.swing.*;
import java.util.*;
import java.awt.image.BufferedImage;
public class Graphics2DDemo extends JFrame
{
public Graphics2DDemo()
{
this.getContentPane().add(new MyPanel());
setTitle("Graphics2D绘图方法演示");
setSize(380,260);
setVisible(true);

}
public static void main(String args[])
{
JFrame.setDefaultLookAndFeelDecorated(true);
Font fonts=new Font("JFrame",Font.PLAIN,14);
Enumeration keys=UIManager.getLookAndFeelDefaults().keys();
while(keys.hasMoreElements())
{
Object keyss=keys.nextElement();
if(UIManager.get(keyss) instanceof Font)
UIManager.put(keyss,fonts);
}
Graphics2DDemo mainFrame=new Graphics2DDemo();
}
}
class MyPanel extends JPanel
{
MyPanel()
{
setBackground(Color.WHITE);
setOpaque(true);

}
public void paintComponent(Graphics g)
{
super.paintComponent(g);
Graphics2D g2d=(Graphics2D)g;
BasicStroke bs=new BasicStroke(10.0f,BasicStroke.CAP_BUTT,BasicStroke.JOIN_BEVEL);
g2d.setStroke(bs);
g2d.drawLine(30,10,100,10);
bs=new BasicStroke(10.0f,BasicStroke.CAP_ROUND,BasicStroke.JOIN_BEVEL);
g2d.setStroke(bs);
g2d.drawLine(30,30,100,30);
bs=new BasicStroke(10.0f,BasicStroke.CAP_SQUARE,BasicStroke.JOIN_BEVEL);
g2d.setStroke(bs);
g2d.drawLine(30,50,100,50);

GeneralPath path=new GeneralPath();
path.moveTo(140,50);
path.lineTo(190,10);
path.lineTo(240,50);
bs=new BasicStroke(10.0f,BasicStroke.CAP_BUTT,BasicStroke.JOIN_BEVEL);
g2d.setStroke(bs);
g2d.draw(path);

path.reset();
path.moveTo(140,70);
path.lineTo(190,30);
path.lineTo(240,70);
bs=new BasicStroke(10.0f,BasicStroke.CAP_ROUND,BasicStroke.JOIN_ROUND);
g2d.setStroke(bs);
g2d.draw(path);

path.reset();
path.moveTo(140,90);
path.lineTo(190,50);
path.lineTo(240,90);
bs=new BasicStroke(10.0f,BasicStroke.CAP_SQUARE,BasicStroke.JOIN_MITER);
g2d.setStroke(bs);
g2d.draw(path);

Ellipse2D e=new Ellipse2D.Float(20,60,100,50);
GradientPaint dp=new GradientPaint(20,60,Color.YELLOW,100,50,Color.BLUE);
g2d.setPaint(dp);
g2d.fill(e);

Image img=new ImageIcon("mmm.jpg").getImage();
BufferedImage bImage=new BufferedImage(img.getWidth(null),img.getHeight(null),BufferedImage.TYPE_INT_RGB);
//BufferedImage bImage=new BufferedImage(img.getWidth(),img.getHeight(),BufferedImage.TYPE_INT_RGB);
Graphics2D g2=bImage.createGraphics();
g2.drawImage(img,null,null);
Rectangle2D tr=new Rectangle2D.Double(0,0,bImage.getWidth(),bImage.getHeight());
TexturePaint tp=new TexturePaint(bImage,tr);
g2d.setPaint(tp);
RoundRectangle2D r=new RoundRectangle2D.Float(260,10,100,100,50,50);
g2d.fill(r);

g2d.setColor(Color.BLACK);
g2d.setStroke(new BasicStroke(1.0f));
Shape shapes=new Rectangle2D.Double(30,120,30,50);
g2d.draw(shapes);

AffineTransform at=AffineTransform.getTranslateInstance(60,0);
g2d.transform(at);
AffineTransform atx=AffineTransform.getRotateInstance(Math.PI/6,30,120);

Shape nshape=atx.createTransformedShape(shapes);
g2d.draw(nshape);
g2d.transform(at);
atx=AffineTransform.getShearInstance(0.0,0.3);
nshape=atx.createTransformedShape(shapes);
g2d.draw(nshape);

Rectangle2D rr=new Rectangle2D.Float(80,120,40,40);
Shape shapel=new Ellipse2D.Float(80,120,100,100);
Shape oldClip=g2d.getClip();
g2d.setClip(rr);
g2d.fill(shapel);

g2d.setClip(oldClip);
Rectangle2D redRect=new Rectangle2D.Float(130,120,80,80);
Rectangle2D blueRect=new Rectangle2D.Float(160,130,80,80);
AlphaComposite ac=AlphaComposite.getInstance(AlphaComposite.SRC_OVER,0.5f);
g2d.setPaint(Color.red);
g2d.fill(redRect);
g2d.setComposite(ac);
g2d.setPaint(Color.BLUE);
g2d.fill(blueRect);

}
}

我用的是JDK1.5
如果不加这句:import java.awt.Shape;会出现10个编译错误 全都是有关Shape的!加了 才能正常编译~~请问是为什么呢?不是已经import java.awt.*;
让别人编 译(他用的是JDK1.4.2) 不加import java.awt.Shape; 却能正常编译 请问是为什么呢???

还有这个程序运行结果有点问题~~希望也能帮我指出来!谢谢!


why edited on 2006-09-05 08:01


话题树型展开
人气 标题 作者 字数 发贴时间
10268 import java.awt.Shape的问题! wqq0712 4362 2006-09-04 19:51
8372 Re:import java.awt.Shape的问题! lisliefor 219 2006-09-05 09:07
8284 Re:import java.awt.Shape的问题! wqq0712 23 2006-09-05 15:19
8255 Re:import java.awt.Shape的问题! wqq0712 102 2006-09-05 15:21
8241 Re:import java.awt.Shape的问题! why 240 2006-09-05 18:47
8880 Re:import java.awt.Shape的问题! wqq0712 2109 2006-09-05 19:46
8284 Re:import java.awt.Shape的问题! lisliefor 234 2006-09-05 22:29
8174 Re:import java.awt.Shape的问题! wqq0712 32 2006-09-06 19:16
8585 Re:import java.awt.Shape的问题! wqq0712 27 2006-09-06 19:18

flat modethreaded modego to previous topicgo to next topicgo to back
  已读帖子
  新的帖子
  被删除的帖子
Jump to the top of page

   Powered by Jute Powerful Forum® Version Jute 1.5.6 Ent
Copyright © 2002-2021 Cjsdn Team. All Righits Reserved. 闽ICP备05005120号-1
客服电话 18559299278    客服信箱 714923@qq.com    客服QQ 714923