我有一个用Java创建绘图程序的任务。我设法创造了一些但不完全符合我想要的东西。
我的问题是我无法从IDE提供的选项中在IDE(NetBeans 7.0.1)中创建JFrame,并正确调用绘图类。
更具体一点的是,我想按一个面板上的按钮(例如Panel1)并在Panel2中绘制相同的框架。
这就是班级的召唤:
private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {
PaintFlower102 f = new PaintFlower102();
}
课程的一部分:
super("Drag to Paint");
getContentPane().add(new Label ("Click and Drag"),BorderLayout.SOUTH);
// add(new JButton("Brush 20"),BorderLayout.NORTH);
addMouseMotionListener( new MouseMotionAdapter() {
@Override
public void mouseDragged(MouseEvent event) {
xval=event.getX();
yval=event.getY();
repaint();
}
});
setSize(500, 500);
setVisible(true);
setDefaultCloseOperation(PaintFlower102.DISPOSE_ON_CLOSE);
}
public void paint(Graphics g) {
g.fillOval(xval, yval, 10, 10);
}
问题在于,如果我没有将extend JFrame
放在课堂上,那就不行了。如果我这样做,它会创建一个我可以绘制的新框架。
答案 0 :(得分:7)
建议:
paintComponent(Graphics g)
方法中绘制,而不是在paint(Graphics g)
。答案 1 :(得分:0)
我可能错了,但我认为你需要包含super.paintComponent(g),并覆盖像Hovercraft Full Of Eels所说的paintComponent方法。
public void paintComponent(Graphics g) {
super.paintComponent(g);
// Draw Oval
g.fillOval(xval, yval, 10, 10);
}