2014-08-30 92 views
-2

我如何在Java中绘制矩形,箭头油漆事件JApplet的:)如何用java中的箭头绘制矩形?

东西像Facebook这样的消息:

enter image description here

+3

如果您找到了解决方案,然后发布您的工作代码,我会有兴趣看看你是如何实现自定义绘画。 – camickr 2014-08-30 14:59:59

+0

查找** 9贴片图像** – Gumbo 2014-08-30 18:12:18

回答

4

我正在尝试使用多边形和矩形。

在玩Shape对象时,我一直忘记使用Area类。

您可以只使用add(...)方法添加两个形状在一起,然后画他们:

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

public class BalloonRectangle extends JPanel 
{ 
    @Override 
    protected void paintComponent(Graphics g) 
    { 
     super.paintComponent(g); 
     Graphics2D g2d = (Graphics2D) g.create(); 

     Rectangle rectangle = new Rectangle(0, 0, 150, 50); 

     Polygon triangle = new Polygon(); 
     triangle.addPoint(0, 0); 
     triangle.addPoint(10, 5); 
     triangle.addPoint(0, 10); 
     triangle.translate(150, 10); 

     Area balloon = new Area(rectangle); 
     balloon.add(new Area(triangle)); 

     g2d.translate(50, 50); 
     g2d.setColor(Color.YELLOW); 
     g2d.fill(balloon); 
     g2d.setColor(Color.GRAY); 
     g2d.draw(balloon); 

     g2d.dispose(); 
    } 

    private static void createAndShowGUI() 
    { 
     JFrame frame = new JFrame("BalloonRectangle"); 
     frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 
     frame.add(new BalloonRectangle()); 
     frame.setLocationByPlatform(true); 
     frame.setSize(250, 200); 
     frame.setVisible(true); 
    } 

    public static void main(String[] args) 
    { 
     EventQueue.invokeLater(new Runnable() 
     { 
      public void run() 
      { 
       createAndShowGUI(); 
      } 
     }); 
    } 
} 

您也可以为更多的想法退房Playing With Shapes

+0

为什么需要使用g2.dispose()?我没有区别。没有g2.dispose()我得到的结果是一样的。 – user3420235 2014-08-31 13:19:26

+1

@ user3420235,当您创建自己的图形对象时,最好释放图形资源。当然,你不应该在传递给绘画方法的Graphics对象上使用dispose。 – camickr 2014-08-31 18:57:56

2

我看不到你的形象,但如果你想画几何图元的组合,那么你可以使用诸如Rectangle2D和Polygon之类的Shapes,并使用Graphics2D实例来填充它们。不要直接在JApplet的paint方法中绘制,而应该在applet显示的JPanel的paintComponent方法中绘制。

+0

我会尝试使用形状:)也许有人会知道什么确切需要使用:)我试图使用多边形和矩形。 – user3420235 2014-08-30 14:33:31

+0

@ user3420235:好的,给他们一个尝试,如果仍然卡住,回来你的代码 – 2014-08-30 14:35:25

+0

也许有人可以举例说明如何做需要? :)因为我试图这样:http://pastebin.com/xJ1q1g1X MPanel,在这里我创建我的面板圆角:) – user3420235 2014-08-30 16:06:47