2016-11-17 14 views
-1

我想做一個程序,當你點擊一個複選框,說你想用虛線繪製一個對象時,但是當我創建一個筆畫並嘗試使用它時,我的圖形不會承認它。該代碼被設置爲雙緩衝區,因此在創建圖像時圖像不會消失。我不知道如何使用虛線畫出物體,並希望得到任何幫助!如何在圖形對象上使用setStroke?

Graphics bgg = bg.getGraphics(); 
    if(!jCheckBox1.isSelected()){ 
     bgg.drawImage(fg, jPanel1.getX(), jPanel1.getY()-50, null); 
    } 
    else{ 
     Graphics2D g2d = (Graphics2D) bgg; 
     float[] fa = {10, 10, 10}; 
     BasicStroke bs = new BasicStroke(5, BasicStroke.CAP_BUTT, BasicStroke.JOIN_BEVEL, 10, fa, 10); 
     g2d.setStroke(bs); 
     g2d.drawImage(fg, jPanel1.getX(), jPanel1.getY()-50, null); 
    } 
+0

我不完全相信你想在這裏做什麼。你只是試圖在圖像上畫一條虛線嗎? – DevilsHnd

+0

我想讓它變成這樣,當我點擊它時,它會使我畫出一條虛線的形狀。 – kbb5268

+0

那麼你試圖畫什麼形狀?我不認爲Graphics.drawImage()方法是您真正想要使用的方法,因爲它用於...以及將圖像(如從圖像文件)繪製到特定的圖形區域。 – DevilsHnd

回答

0

爲了繪製一個矩形到你的形象,你將需要使用Graphics.drawRect()方法是這樣的(只是把我的頭的頂部,你已經有了):

Graphics bgg = bg.getGraphics(); 
if(!jCheckBox1.isSelected()){ 
    bgg.drawImage(fg, jPanel1.getX(), jPanel1.getY()-50, null); 
} 
else{ 
    Graphics2D g2d = (Graphics2D) bgg; 
    //Draw image into panel... 
    g2d.drawImage(fg, jPanel1.getX(), jPanel1.getY()-50, null); 

    //Draw dashed rectagle in center of panel... 
    int pW = jPanel1.getWidth();  // Get panel Width 
    int pH = jPanel1.getHeight(); // Get panel Height 
    float[] fa = {10, 10, 10};  // The dash pattern 
    // Set Brush thickness (5) 
    BasicStroke bs = new BasicStroke(5, BasicStroke.CAP_BUTT, BasicStroke.JOIN_BEVEL, 10, fa, 10); 
    g2d.setStroke(bs); 
    Dimension rectangle = new Dimension(200, 50); // Our desired rectangle dimensions 
    // Center locations for rectangle... 
    int x1 = (pW/2) - (rectangle.width/2); 
    int y1 = (pH/2) - (rectangle.height/2); 
    int x2 = rectangle.width; 
    int y2 = rectangle.height; 
    g2d.setColor(Color.RED);  // Set the dashed shape line color 
    g2d.drawRect(x1, y1, x2, y2); // Draw the dashed rectangle 
    // free resourses 
    bgg.dispose(); 
    g2d.dispose(); 
    jPanel1.revalidate(); // update panel graphics 
} 

的5筆觸使一個相當沉重的破折號:)

相關問題