JAVA 无法从另一个类中绘制到 JFrame 上

2024-02-08

我知道这是我的错误。我的问题是为什么这不起作用我错过了什么我可以称之为我把它放在一个方法而不是一个类所以我假设他们的第三个类有问题?

第 1 类:

package assignment.pkg1.java;

import java.awt.Color;
import javax.swing.JFrame;

public class JVMVeiwer  {

/**
 * @param args the command line arguments
 */
public static void main(String[] args) {
    final int FRAME_WIDTH = 1000; // Frame Width
    final int FRAME_HEIGHT = 800; // Frame Height
    JFrame frame = new JFrame();

    frame.setSize(FRAME_WIDTH, FRAME_HEIGHT); //Sets Frame Size
    frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    frame.setTitle("JVM Diagram");// Sets the Title       
    JVMComponent component = new JVMComponent();
    frame.setBackground(Color.WHITE);
    frame.add(component); // adds the diagram to the JFrame       
    frame.setVisible(true); // Makes the frame visible
}

}

Class 2:

package assignment.pkg1.java;

import java.awt.*;
import javax.swing.JComponent;


public class JVMComponent extends  JComponent { 

@Override
public void  paintComponent(Graphics g) {      
    super.paintComponent(g);        
    Graphics2D g2 = (Graphics2D) g; // recover the graphic  
    JVMDiagram diagram = new JVMDiagram(); // creates an instance of JVM Diagram
    diagram.draw(g2);
  }
}

第 3 类,这是我无法在 jframe 上使用 o Paint 的类:

package assignment.pkg1.java;

import java.awt.Color;
import java.awt.Graphics2D;
import javax.swing.JComponent;

public class JVMDiagram {
// Constructor
public JVMDiagram() {

}
// Draw method for shape
public  void draw(Graphics2D g2) {
// Detailed instructions to draw shape
    int x = getWidth();
    int y = getHeight();
    int temp, temp2;
    int width = x / 2;
    int height = x / 2;
    x = (x - width) / 2;
    y= (y - height) / 2; 

    g2.setColor(Color.RED);
    g2.drawOval(x, y, width, height);
    g2.drawRect(x, y, width, height);
    g2.setColor(Color.RED);
    g2.drawLine(x, y, width + x, height + y);
    g2.drawRoundRect(x, y, width, height, y, y);

    g2.drawLine(x + width, y, x, height + y);
}

}


你的问题是你滥用了继承。您的 JVMDiagram 正在扩展 JVMComponent,但它不应该扩展。是的,您获得了 JVMComponent 的 getWidth() 和 getHeight() 方法,但它们没有任何意义,因为 JVMDiagram 没有作为组件添加到 GUI,也不应该作为组件添加,并且它的高度为 0,并且宽度(打印出来)。

重新思考你的设计,don't为此使用继承。相反,如果需要,可以将值从一个对象传递到另一个对象。例如,在 JVMComponent 中创建一个 JVMDiagram 字段并对其进行初始化。在JVMComponent的paintComponent方法中的JVMDiagram绘制方法中用Graphics2D传入宽度和高度。

附带问题:从不打电话repaint()从绘画方法内或从绘画方法内调用的代码。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

JAVA 无法从另一个类中绘制到 JFrame 上 的相关文章

  • 在 Java 中连接和使用 Cassandra

    我已经阅读了一些关于 Cassandra 是什么以及它可以做什么的教程 但我的问题是如何在 Java 中与 Cassandra 交互 教程会很好 如果可能的话 有人可以告诉我是否应该使用 Thrift 还是 Hector 哪一个更好以及为什
  • Java new Date() 打印

    刚刚学习 Java 我知道这可能听起来很愚蠢 但我不得不问 System out print new Date 我知道参数中的任何内容都会转换为字符串 最终值是 new Date 返回对 Date 对象的引用 那么它是如何打印这个的呢 Mo
  • Java Swing:从 JOptionPane 获取文本值

    我想创建一个用于 POS 系统的新窗口 用户输入的是客户拥有的金额 并且窗口必须显示兑换金额 我是新来的JOptionPane功能 我一直在使用JAVAFX并且它是不同的 这是我的代码 public static void main Str
  • 如何使用 Java 和 Selenium WebDriver 在 C 目录中创建文件夹并需要将屏幕截图保存在该目录中?

    目前正在与硒网络驱动程序和代码Java 我有一种情况 我需要在 C 目录中创建一个文件夹 并在该文件夹中创建我通过 selenium Web 驱动程序代码拍摄的屏幕截图 它需要存储在带有时间戳的文件夹中 如果我每天按计划运行脚本 所有屏幕截
  • Java中反射是如何实现的?

    Java 7 语言规范很早就指出 本规范没有详细描述反射 我只是想知道 反射在Java中是如何实现的 我不是问它是如何使用的 我知道可能没有我正在寻找的具体答案 但任何信息将不胜感激 我在 Stackoverflow 上发现了这个 关于 C
  • 给定两个 SSH2 密钥,我如何检查它们是否属于 Java 中的同一密钥对?

    我正在尝试找到一种方法来验证两个 SSH2 密钥 一个私有密钥和一个公共密钥 是否属于同一密钥对 我用过JSch http www jcraft com jsch 用于加载和解析私钥 更新 可以显示如何从私钥 SSH2 RSA 重新生成公钥
  • 无法展开 RemoteViews - 错误通知

    最近 我收到越来越多的用户收到 RemoteServiceException 错误的报告 我每次给出的堆栈跟踪如下 android app RemoteServiceException Bad notification posted fro
  • 加速代码 - 3D 数组

    我正在尝试提高我编写的一些代码的速度 我想知道从 3d 整数数组访问数据的效率如何 我有一个数组 int cube new int 10 10 10 我用价值观填充其中 然后我访问这些值数千次 我想知道 由于理论上所有 3d 数组都存储在内
  • 控制Android的前置LED灯

    我试图在用户按下某个按钮时在前面的 LED 上实现 1 秒红色闪烁 但我很难找到有关如何访问和使用前置 LED 的文档 教程甚至代码示例 我的意思是位于 自拍 相机和触摸屏附近的 LED 我已经看到了使用手电筒和相机类 已弃用 的示例 但我
  • Liferay ClassNotFoundException:DLFileEntryImpl

    在我的 6 1 0 Portal 实例上 带有使用 ServiceBuilder 和 DL Api 的 6 1 0 SDK Portlet 这一行 DynamicQuery query DynamicQueryFactoryUtil for
  • 磁模拟

    假设我在 n m 像素的 2D 表面上有 p 个节点 我希望这些节点相互吸引 使得它们相距越远吸引力就越强 但是 如果两个节点之间的距离 比如 d A B 小于某个阈值 比如 k 那么它们就会开始排斥 谁能让我开始编写一些关于如何随时间更新
  • 我可以使用 HSQLDB 进行 junit 测试克隆 mySQL 数据库吗

    我正在开发一个 spring webflow 项目 我想我可以使用 HSQLDB 而不是 mysql 进行 junit 测试吗 如何将我的 mysql 数据库克隆到 HSQLDB 如果您使用 spring 3 1 或更高版本 您可以使用 s
  • 十进制到八进制的转换[重复]

    这个问题在这里已经有答案了 可能的重复 十进制转换错误 https stackoverflow com questions 13142977 decimal conversion error 我正在为一个类编写一个程序 并且在计算如何将八进
  • 禁止的软件包名称:java

    我尝试从数据库名称为 jaane 用户名 Hello 和密码 hello 获取数据 错误 java lang SecurityException Prohibited package name java at java lang Class
  • Java TestNG 与跨多个测试的数据驱动测试

    我正在电子商务平台中测试一系列商店 每个商店都有一系列属性 我正在考虑对其进行自动化测试 是否有可能有一个数据提供者在整个测试套件中提供数据 而不仅仅是 TestNG 中的测试 我尝试不使用 testNG xml 文件作为机制 因为这些属性
  • 在两个活动之间传输数据[重复]

    这个问题在这里已经有答案了 我正在尝试在两个不同的活动之间发送和接收数据 我在这个网站上看到了一些其他问题 但没有任何问题涉及保留头等舱的状态 例如 如果我想从 A 类发送一个整数 X 到 B 类 然后对整数 X 进行一些操作 然后将其发送
  • JRE 系统库 [WebSphere v6.1 JRE](未绑定)

    将项目导入 Eclipse 后 我的构建路径中出现以下错误 JRE System Library WebSphere v6 1 JRE unbound 谁知道怎么修它 右键单击项目 特性 gt Java 构建路径 gt 图书馆 gt JRE
  • 加密 JBoss 配置中的敏感信息

    JBoss 中的标准数据源配置要求数据库用户的用户名和密码位于 xxx ds xml 文件中 如果我将数据源定义为 c3p0 mbean 我会遇到同样的问题 是否有标准方法来加密用户和密码 保存密钥的好地方是什么 这当然也与 tomcat
  • 如何在控制器、服务和存储库模式中使用 DTO

    我正在遵循控制器 服务和存储库模式 我只是想知道 DTO 在哪里出现 控制器应该只接收 DTO 吗 我的理解是您不希望外界了解底层域模型 从领域模型到 DTO 的转换应该发生在控制器层还是服务层 在今天使用 Spring MVC 和交互式
  • 在 Maven 依赖项中指定 jar 和 test-jar 类型

    我有一个名为 commons 的项目 其中包含运行时和测试的常见内容 在主项目中 我添加了公共资源的依赖项

随机推荐

  • coredata 错误,因为sectionNameKeyPath 或在 NSFetchedResultsController 处对数据进行分组

    2011 12 28 10 52 13 633 BadgerNew 663 707 CoreData error NSFetchedResultsController object
  • 如何在 Struts 2 上应用 Spring Security

    我已经阅读了各种教程和论坛 但没有找到结合 Spring security 和 struts2 来研究编码的工作示例 当前的大多数示例都使用 XML 文件中预定义的用户名和密码 但未连接到数据库 例子 Sample 1 https stac
  • PyQt:当内容更改时如何处理小部件的自动调整大小

    当 qt4 小部件的内容发生变化时 我遇到了一些大小问题 我将用两个简单的场景来说明我的问题 场景一 我有一个 QLineEdit 小部件 有时 当我使用 QLineEdit setText 更改其内容时 单行字符串不再适合其当前大小的小部
  • SQL Server 2005 和 SQL Server 2008 之间是否存在冲突?

    我被告知带有 BI 工具的 SQL Server 2005 安装和带有 BI 工具的 SQL Server 2008 不能在同一台计算机上一起工作 显然 一些 事情停止工作 这是我的一位团队成员告诉我的 由于我是 SQL BI 的新手 所以
  • Python:跨文件块边界的正则表达式匹配

    巨大的纯文本数据文件 我使用 python 读取了一个大文件 然后我在该块上应用正则表达式 我想根据一个标识符标签提取相应的值 由于块大小的原因 数据在块边界处丢失 要求 必须以块的形式读取文件 块大小必须小于 或等于 1 GiB Pyth
  • 与 Facebook Graph API 相关的问题

    实际上我正在使用该代码来获取 Facebook 帖子数据 Facebook CURL OPTS CURLOPT SSL VERIFYPEER false Facebook CURL OPTS CURLOPT SSL VERIFYHOST 2
  • 如何从environment.rb或初始化程序中强制RAILS_ENV=development?

    我们的主机不允许我们修改乘客配置文件 即 apache 配置或 vhosts 文件 但我们希望在开发模式下运行 Rails 因此 我们必须在应用程序重新启动时 Rails 加载的文件之一中指定环境 prod dev test 有人知道怎么做
  • 如何使用 Modernizr 测试第 n 个孩子?

    我正在尝试使用 Modernizr 来测试 nth child浏览器支持 但我不知道该怎么做 我找到了这个http jsfiddle net laustdeleuran 3rEVe http jsfiddle net laustdeleur
  • System.Timers.Timer (.NET) 真的很慢吗?

    我的印象是 System Timers Timer 创建自己的线程 并且 Microsoft 建议使用这种类型的计时器来执行更准确计时的任务 与在 UI 线程中运行的 Windows Forms Timer 相反 下面的代码 我认为 应该可
  • Service Worker 和网页之间的通信

    我正在开发一个应用程序 其目标是定期 例如每小时 向用户发送通知 我的想法是使用一个服务工作者 该服务工作者可以在选项卡关闭后运行 并继续向用户发送这些通知 网页需要能够与 Service Worker 沟通有关这些通知的具体细节 消息应该
  • 如何在Ubuntu下使用SVN 1.8和Eclipse?

    我们刚刚升级到SVN 1 8 不幸的是没有人想到我们 Linux 人 有没有办法将 Eclipse 连接到 SVN 1 8 的回购协议多米尼克 斯塔德勒 https launchpad net dominik stadler 多次提到升级到
  • 根据 Zingchart 中的列值进行多重绘图并更改线条颜色

    背景资料 我想将 gnuplot 图移植到 Zingchart 我添加了 gnuplot 源代码以更好地解释我的目标 reset set autoscale set term canvas rounded solid butt size 1
  • 如何在 Cloud Run 上部署 Typescript 项目

    Cloud Run error The user provided container failed to start and listen on the port defined provided by the PORT 8080 env
  • 选择随机记录并在一个查询中更新相同记录?

    我正在开发一个小型横幅旋转脚本 该脚本从数据库加载随机横幅 我正在跟踪数据库中的印象 想知道是否可以选择随机记录并在单个查询中更新其印象值 或者我是否需要选择随机记录 然后根据记录 pk 进行更新 使用MySQL 这无法在单个查询中完成 最
  • 限制 Django 表中的行数

    我的模型文件中有一个表 我想将其设计为表中的行数限制为十行 当超过限制时 最旧的行将被删除 对于某些上下文 这是前端的显示 向用户显示他们最近访问过的十个链接 我是 Django 新手 所以如果有人对如何做到这一点有建议 我将不胜感激 你可
  • elf 格式的可执行文件和可重定位文件有什么区别?

    elf 格式的可执行文件和 elf 格式的可重定位文件有什么区别 如您所知 每个编译后的可执行文件都是具有相对地址和绝对地址的二进制文件 因此可重定位格式是一种格式 其中函数和其他符号仍然具有名称定义 换句话说 函数和变量不绑定到任何特定地
  • 如何在 IntelliJ IDEA 13(或 WebStorm)上远程运行 mocha 测试?

    IntelliJ IDEA 13 通过 Node js 插件对 Mocha 测试提供了非常出色的支持 https www jetbrains com idea webhelp running mocha unit tests html ht
  • python udp客户端超时机制

    如果服务器套接字中生成的兰特数小于4 我的客户端套接字将暂停接收数据 我需要设置超时机制以允许客户端套接字检测到 超时 然后继续发送消息 在我运行服务器套接字然后运行客户端套接字后 出现以下错误消息 Traceback most recen
  • FirebaseTableViewDataSource 在用户注销和登录时崩溃

    我的应用程序有一个 UITableViewController 它使用 FirebaseTableViewDataSource 来自 FirebaseUI 该表正确显示了用户添加书签的帖子 但是当我注销该用户并登录另一个用户时 应用程序崩溃
  • JAVA 无法从另一个类中绘制到 JFrame 上

    我知道这是我的错误 我的问题是为什么这不起作用我错过了什么我可以称之为我把它放在一个方法而不是一个类所以我假设他们的第三个类有问题 第 1 类 package assignment pkg1 java import java awt Col