Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/317.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在Java代码中的任意位置绘制直线、圆弧等_Java_Swing_Drawing_Jpanel_Paintcomponent - Fatal编程技术网

在Java代码中的任意位置绘制直线、圆弧等

在Java代码中的任意位置绘制直线、圆弧等,java,swing,drawing,jpanel,paintcomponent,Java,Swing,Drawing,Jpanel,Paintcomponent,我是Java的新手,在我的程序中,我必须在一个不同于paintComponent()的函数中绘制一些直线、圆弧等,在某些情况下,在一个扩展JPanel的类中 我通常使用ActionScript进行可视化工作,当我使用AS时,我可以在任何函数中绘制任何几何图形 那么,在Java中有没有做同样事情的方法,以及如何做 谢谢大家! 为什么不在paintComponent(…)中绘制?您陈述了您的新需求,并且可能误解了如何最好地实现Swing图形,因此了解您的需求及其背后的基本原理可以帮助我们帮助您 您

我是Java的新手,在我的程序中,我必须在一个不同于
paintComponent()
的函数中绘制一些直线、圆弧等,在某些情况下,在一个扩展JPanel的类中

我通常使用ActionScript进行可视化工作,当我使用AS时,我可以在任何函数中绘制任何几何图形

那么,在Java中有没有做同样事情的方法,以及如何做

谢谢大家!

  • 为什么不在
    paintComponent(…)
    中绘制?您陈述了您的新需求,并且可能误解了如何最好地实现Swing图形,因此了解您的需求及其背后的基本原理可以帮助我们帮助您
  • 您可以在任何时间以任何代码绘制BuffereImage
  • 然后该图像可以显示在JComponent的
    paintComponent(…)
    方法中
  • 或者通过其
    setIcon(…)
    方法在JLabel的图标中
  • 请务必阅读Graphics2D API,其中包含绘制图形所需的所有方法
  • 一定要阅读Swing图形教程,因为做这种工作需要范式转换
  • 不要通过调用组件(如JPanel)上的
    getGraphics()
    来获取图形对象。通过调用BuffereImage上的
    getGraphics()
    或从
    paintComponent(Graphics g)
    参数获取