簡體   English   中英

在 Java 中繪制圖形 - NetBeans IDE

[英]Drawing graphics in java - NetBeans IDE

我在 NetBeans 中創建了一個新的 JApplet 表單:

public class UI extends javax.swing.JApplet {
    //generated code...
}

還有一個名為panou設計模式 JPanel :

// Variables declaration - do not modify                     
private javax.swing.JPanel panou;

如何在panou上畫一條線? 我已經搜索了 5 個小時,所以代碼片段和放置它的位置會很棒。 最好使用 Graphics2D。

  1. 進入設計模式
  2. 右鍵單擊面板“panou”
  3. 點擊“裝飾代碼”
  4. 在對話框中選擇第一個組合框“costum creation”
  5. 添加 after = new javax.swing.JPanel()這個,所以你看到這個:

panou = new javax.swing.JPanel(){
    @Override
    public void paintComponent(Graphics g)
    {
        super.paintComponent(g); // Do the original draw
        g.drawLine(10, 10, 60, 60); // Write here your coordinates
    }
};

確保導入java.awt.Graphics

您將看到的線條始終為 1 個像素粗。 您可以通過執行以下操作使其更“行”:

創建此方法:

public static final void setAntiAliasing(Graphics g, boolean yesno)
{
    Object obj = yesno ? RenderingHints.VALUE_ANTIALIAS_ON
                 : RenderingHints.VALUE_ANTIALIAS_OFF;

    ((Graphics2D) g).setRenderingHint(RenderingHints.KEY_ANTIALIASING, obj);
}

並在super.paintComponent(g);之后添加super.paintComponent(g); (在你的服裝創作中)這個:

setAntiAlias(g, true);

編輯:

你做錯了什么:你畫了一次線(通過創建框架)。 當您繪制線條時,框架也是不可見的。 第一次繪制發生在框架變得可見時。 框架將被重新繪制,因此之前繪制的所有內容都將消失。
總是調整框架的大小,一切都將重新粉刷。 因此,您必須確保每次繪制面板時,線條也已繪制。

要在JPanel進行自定義繪制,需要創建JPanel的子類,然后重載paintComponent方法:

class MyPanel extends JPanel {
  public void paintComponent(Graphics g) {
     // Perform custom painting here.
  }
}

在上面的示例中, MyPanel類是JPanel的子類,它將執行在paintComponent方法中編寫的任何自定義繪制。

有關如何在 Swing 組件中進行自定義繪制的更多信息,Java 教程中的課程:執行自定義繪制提供了一些示例。


如果想要做的Java2D畫(即使用Graphics2D ),那么一個可以做對了一些繪畫BufferedImage第一,然后繪制的內容BufferedImageJPanel

class MyPanel extends JPanel {
  BufferedImage image;

  public MyPanel() {
    Graphics2D g = image.createGraphics();
    // Do Java2D painting onto the BufferedImage.
  }

  public void paintComponent(Graphics g) {
     // Draw the contents of the BufferedImage onto the panel.
     g.drawImage(image, 0, 0, null);
  }
}

進一步閱讀:

我只想知道此方法是否可以與netbean IDE一起使用?

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM