【问题标题】:How to draw a simple class object in Java(JFrame)?如何在 Java(JFrame) 中绘制一个简单的类对象?
【发布时间】:2019-10-27 18:31:10
【问题描述】:

我是 Java 应用程序开发的新手,我想在 JFrame-canvas 中绘制一些简单的形状,而不使用一个主类,而是将其拆分为一个主类和一个 playerRectangle 类。在 playerRectangle 类中我创建了一个方法paint:

public void paint(Graphics g) {
       setSize(500, 500);
       g.drawRect(320, 20, 640, 120);
   } 

然后我在主类的某个渲染函数中创建了一个对象,并调用了这个对象的绘制函数。

playerRectangle p1 = new playerRectangle();
p1.paint(null);

但不知何故,它抛出了 java.lang.NullPointerException 错误并且没有将矩形呈现到屏幕上。当我不将此函数拆分为两个类时,即使它抛出此错误,它也能正常工作。所以请帮助我并告诉我,我在这里缺少什么。

对 Youtube 和其他东西的任何研究都只告诉我,我必须创建像 screen 之类的类,但我不太确定这对我有帮助。

感谢您的帮助

【问题讨论】:

  • 显示你的window类和playerRectangle类,在一个类中怎么画矩形?
  • 我是 Java 应用程序开发的新手 您是否考虑过使用 JavaFX 而不是 SwingJavaFX 应该是 Swing 的更现代的替代品。既然您声称刚刚起步,为什么不使用最新的 API?
  • Swing 大约有二十 (20) 岁。您需要尝试确保您没有在 Internet 上查看过时和过时的教程。 (假设您想坚持使用 Swing 而不是使用 JavaFX

标签: java swing draw


【解决方案1】:

如何使用标准库绘制矩形的简单示例:

public class SomeClass extends JPanel {
 public void paintComponent(Graphics g) {
  super.paintComponent(g);
  g.setColor(Color.GREEN);
  g.fillRect(0,0,320,220);
 }
 SomeClass() {
   JFrame frame = new JFrame();
   frame.serContentPane(this);
   frame.setBounds(0,0,320,220);
   frame.setVisible(true);
 }
}

带有main方法的类:

public class Main {
 public static void main(String[] args) {
  new SomeClass();
 }
}

【讨论】:

    猜你喜欢
    • 2012-03-31
    • 2021-07-09
    • 2016-09-28
    • 2014-07-09
    • 2013-12-25
    • 1970-01-01
    • 2018-05-07
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多