[英]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。
= 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
第一,然后繪制的內容BufferedImage
到JPanel
:
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.