我正在寫一個程序,它只是一個簡單的形狀製造者,我應該是我的主面板,ShapeMakerPanel,以及那個面板上的2個面板,controlPanel(它包含用於選擇形狀的按鈕和清理它等)和drawingArea(實際繪製形狀的地方),但無論我做什麼,我都無法將繪圖顯示在drawingArea上。如果我只是使用paintComponent並註釋掉添加(drawingArea),那麼繪圖的東西就起作用了,但是在最底層,我該如何繪製drawingArea Jpanel。此外,當我畫的形狀,我只能有一次一個,因爲我每次開始一個新的,面板擦拭clean`在JPanels上繪畫
super.paintComponent(g);
g.setColor(penColor);
if (p1 != null && p2 != null)
{
if (shapeChoice.getSelectedItem().equals("Line"))
{
Line line = new Line(p1.x, p1.y, p2.x, p2.y);
line.draw(g);
}
}
我知道它的super.paintComponent方法(G)搞砸了我,但沒有,因爲我拖動鼠標,它會繪製數百行。
如果您想知道Line類,我們必須爲每個繪製的形狀創建一個類,draw()方法只是使用線的座標並將其放入drawLine()中。
備註:在大多數情況下,JPanel不會爲JComponent未提供的自定義繪畫帶來任何影響。 – 2011-03-16 04:05:47