我正在写一个程序,它只是一个简单的形状制造者,我应该是我的主面板,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