我還沒有使用過Swing/G2D,所以請耐心等待。 我有以下類,這是對我的GUI組件(意味着是一個樣的畫布上繪製):Graphics2D和JComponent
import javax.swing.*;
import java.awt.*;
public class DrawPanel extends JComponent{
public void paintComponent(Graphics g){
Graphics2D g2 = (Graphics2D) g;
g2.setPaint(Color.black);
g2.fillRect(0, 0, getWidth(), getHeight());
BrushStroke bs = new BrushStroke();
add(bs);
}
}
我一直在試圖添加以下上面的JComponent:
import javax.swing.*;
import java.awt.*;
public class BrushStroke extends JComponent{
public void paintComponent(Graphics g){
Graphics2D g2 = (Graphics2D) g;
g2.setRenderingHint(RenderingHints.KEY_ANTIALIASING,
RenderingHints.VALUE_ANTIALIAS_ON);
g2.setPaint(Color.red);
g2.fillOval(0, 0, 10, 10);
}
}
BrushStroke不顯示在DrawPanel上。
我一直在尋找答案,我看到的每個例子似乎都是矛盾的。
如果有人嘗試過我的話,那麼我們將不勝感激。另外,如果我採取完全錯誤的做法,請說。
您不應該爲畫筆描邊使用「JComponent」。 –
@ChrisDennett,使用JComponent進行自定義繪畫沒有任何問題。默認情況下,該組件將是透明的。如果你想要一個不透明的組件,那麼,你可能會擴展JPanel,所以你不必擔心背景畫。 – camickr