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

java内部类中图形g的使用

锺离玮
2023-03-14

G2.DrawString(new Date().toString(),0,150);

(我在内部类的paint方法中使用了g2(全局变量))。

非常感谢!

    public class RedRect extends Frame
    {
public static void main(String[] args){ SwingUtilities.invokeLater(new Runnable() {

共有1个答案

阴鸿才
2023-03-14

您的代码不能工作的原因是您错误地使用了图形。Graphics对象不应该是一个类字段,更不应该是一个静态字段。它不是一个长期存在的对象,因此如果您试图以这种方式保持它,您将得到一个空引用或一个不起作用的非空引用。

相反,如果您的程序是AWT程序,则使用paint方法中的Graphics对象,当JVM调用paint时,JVM会向您提供该对象。否则,如果Swing,请同样使用paintComponent方法。

建议:

    null
 类似资料:
  • 我试图在JPanel上画一些简单的形状,但是有一些困难。如果这个问题似乎以前已经回答过,但其他答案似乎没有帮助,请原谅。 我遵循了一个简单的教程,并成功地在JFrame上绘制了一些基本形状,但是当我将代码如何移动到一个扩展JPel的新类中时,屏幕上什么也没有出现。 我尝试过设置首选大小,重新验证和重新绘画。我添加了对super.paint组件的调用,尽管当我直接绘制到JFrame时,这两个调用都不

  • 我在学习Java中读到关于内部班级的文章。我找到了这个密码 编译后,javap的动物$Brain输出为 这解释了内部类如何在内部类构造函数中获取对其封闭实例的引用。但是当我像这样将内部类定义为private时 然后编译后,javap'动物$Brain'给出输出为 那么为什么输出不同呢?为什么没有显示内部类构造函数?在后一种情况下,内部类也获得了封闭类实例的引用。

  • 问题内容: 我有以下Java代码: 得出666和999。现在,我尝试在c#中设置类似的代码,但是似乎无法完成相同的工作。如果是这样,用c#编程时通常如何达到类似的效果? 问题答案: 您需要使内部类将外部类的实例作为构造函数参数。(这是Java编译器实现内部类的方式)

  • 我已经知道java中的内部类不能有静态成员,除非它们被宣布为最终的。但是,理论上不应该在局部类中声明静态成员吗? 例如。 我知道内部类的标准初始化是这样发生的: 但为什么不这样呢?? 当创建OuterClass实例时,它还包含innerClass的副本。因此,如果允许在innerClass中存在静态(只是静态的,但不是最终的)成员,那么应该(或可以)以这种方式访问它们 outer class in

  • 问题内容: 因此,当研究lambda表达式并用它们代替Java中的EventHandlers的匿名内部类时,我遇到了一些匿名内部类,这些使我停下来思考。例如,当为通常实现ActionListener的东西编写匿名内部类时,我们会编写 我对此感到困惑,因为ActionListener是一个接口,所以我认为有必要做类似的事情… 但这甚至无法编译。我想我这样做的原因显然是如果我们使用私有内部类,而使用

  • 本节我们将介绍 Java 中的内部类。通过本节的学习,我们将了解到什么是内部类,内部类的分类和作用。在内部类的分类部分,我们将逐一学习各个类型的内部类如何定义,如何实例化以及各自的特点,要注意区分不同类型内部类的异同。有了这些基础知识之后,我们也会结合示例介绍为什么需要内部类。 1. 概念 在 Java 语言中,可以将一个类定义在另一个类里面或者一个方法里面,我们把这样的类称为内部类。 与之对应的