当前位置: 首页 > 知识库问答 >
问题:

画出画法之外的图形

夹谷英杰
2023-03-14
private void draw_shape() {                                         
    Graphics g = getGraphics();
    g.drawLine(0, 0, 100, 100);
    repaint();
}                                        

在paint method中,只绘制那些图形,这是paint method的一部分,因为我想在paint method之外绘制形状。这个代码划清了界限,但它立即消失了,我不明白为什么会发生这种情况。请帮忙

共有3个答案

党源
2023-03-14

因为paint方法也会绘制东西。不应在绘制方法之外绘制图形。您应该替代绘制方法,如下所示:

@Override public void paint (Graphics g) {
    super.paint(g);
    g.drawLine(0, 0, 100, 100);
}
景光赫
2023-03-14

行消失,因为Swing(或AWT)将调用油漆(图形)或油漆组件(图形g),以痛苦的组件。

你需要做的是把你的绘图逻辑放在绘画(图形)或绘画组件(图形g)方法上。后者更可取。

如果您真的需要使用另一种方法绘制东西,请将图像存储为类字段,并在油漆或油漆组件方法上绘制此图像。

雷飞虎
2023-03-14

这不起作用,因为您将在Swing重新绘制线程之外获得当前的Graphics。基本上:

  • 得到当前的Graphics
  • 你在上面画些东西
  • 然后你调用repain(),这将调用组件 ,从而丢弃所有你所做的

要使其工作,您应该覆盖对象的绘制绘制组件用于Swing)方法:

@Override
public void paint(Graphics g) {
  super.paint(g); // if you have children to the component
  g.drawLine(..)
}

当某些内容被修改时,只需调用repaint()

 类似资料:
  • 本文向大家介绍Android入门之画图详解,包括了Android入门之画图详解的使用技巧和注意事项,需要的朋友参考一下 前文常用的控件介绍了不少,现在就来讨论一下手机开发中常用到的画图。要掌握Android的画图,首先就要了解一下,基本用到的如下一些图形接口: 1.Bitmap,可以来自资源/文件,也可以在程序中创建,实际上的功能相当于图片的存储空间; 2.Canvas,紧密与Bitmap联系,把

  • 请看两张截图: 上面的部分好像是用了一个ViewPager。ViewPager上的当前屏幕显示上一个和下一个屏幕的一部分。 问题:我们如何实现这个动画?i、 e.在哪里可以看到部分上一个和下一个屏幕??

  • 本文向大家介绍Python数据可视化之画图,包括了Python数据可视化之画图的使用技巧和注意事项,需要的朋友参考一下 安装数据可视化模块matplotlib:pip install matplotlib 导入matplotlib模块下的pyplot 1 折线图 2 散点图 用两种方法 第一种:只需将函数polt换成scatter即可. 第二种方法:在polt函数里添加第三个参数 “o”. 可以更

  • 本文向大家介绍Android实现简单画图画板,包括了Android实现简单画图画板的使用技巧和注意事项,需要的朋友参考一下 本文实例为大家分享了Android实现简单画图画板的具体代码,供大家参考,具体内容如下 效果如图: 布局文件: MainActivity.java 以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持呐喊教程。

  • 图表画布 由一个画布和一个工具栏组成,让你设计图表,例如添加对象、设置图表格式和打印模型等。一个模型文件可以有多个图表。在模型中,每一个图表是由一个选项卡来表示。若要创建一个新的图表,从模型的菜单选择 文件 -> 新建图表。 创建表 要创建一个新的表,从图表工具栏点击 按钮和点击画布的任何位置。 你可以从浏览器的模型选项卡添加一个现有的表,简单地从模型选项卡拖放表到画布。 如果图表符号设置为默认,

  • 请问这个函数用mathematica怎么画图呢?其中\( \delta \)是自变量,其余字母都是未知参数。