如何判斷paint方法只在JPanel上繪製背景,而不是在整個JFrame上繪製背景。 我的JFrame大小比JPanel大。當我嘗試繪製JPanel的網格背景時,網格似乎被繪製到JFrame而不僅僅是JPanel。代碼JPanel的油漆背景
以下部分組成:
public class Drawing extends JFrame {
JPanel drawingPanel;
...........
public Drawing(){
drawingPanel = new JPanel();
drawingPanel.setPreferredSize(new Dimension(600,600));
}
public void paint(Graphics g)
{
super.paintComponents(g);
Graphics2D g2 = (Graphics2D) g;
g2.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON);
paintBackground(g2); //call a METHOD to paint the for JPANEL
}
private void paintBackground(Graphics2D g2)
{
g2.setPaint(Color.GRAY);
for (int i = 0; i < drawingPanel.getSize().width; i += 300)
{
Shape line = new Line2D.Float(i, 0, i, drawingPanel.getSize().height);
g2.draw(line);
}
for (int i = 0; i < drawingPanel.getSize().height; i += 300)
{
Shape line = new Line2D.Float(0, i, drawingPanel.getSize().width, i);
g2.draw(line);
}
} //END private void paintBackground(Graphics2D g2)
}
我給你正確的答案,但你不接受它。很高興知道未來。 – camickr 2010-01-01 17:15:14