2014-08-30 88 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