使用paintComponent()在JFrame中绘制矩形

2023-12-13

我正在尝试创建一个使用 JPanel 的 PaintComponent() 绘制形状(下面示例中的矩形)的程序,但我无法让它工作,也无法发现问题所在。

代码如下:

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

public class RandomRec{
    JFrame frame;

    public void go(){
        frame = new JFrame();
        frame.setSize(500,500);
        frame.setVisible(true);
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        DrawPanel panel = new DrawPanel();
    }

    public static void main (String[] args){
        class DrawPanel extends JPanel{
           public void paintComponent(Graphics g) {
              super.paintComponent(g);
              g.setColor(Color.orange);
              g.drawRect(20, 20, 100, 60);
           }
        }

        RandomRec test = new RandomRec();
        test.go();
    }
}

对此的任何帮助将不胜感激。

谢谢。

*UPDATE*问题解决了!将 go() 方法移出 main 方法,添加一个frame.add(panel)并将frame.setVisible(true)移动到go()方法的底部(更具体地说,在将面板添加到之后将其移动到框架)已经解决了这个问题。谢谢。


你的班DrawPanel仅限于你的范围main方法,并且对您的构造函数不可见。

你需要移动DrawPanel从你的main方法,然后将其添加到您的JFrame:

frame.add(panel);

另外最好打电话frame.setVisible(true)添加完所有组件后。

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

使用paintComponent()在JFrame中绘制矩形 的相关文章

  • JavaFX Platform.runLater 的使用以及从不同线程访问 UI

    我有几个问题Platform runLater 我有一个 JavaFX 应用程序类 在这个类中 我运行一个线程 该线程从网络套接字读取数据 现在当我创建一个新的Stage在线程内部 系统抛出异常 JavaFX 事件调度程序线程和我的网络读取
  • 如何在Java 8中实现Elvis运算符?

    我有一个经典的 Elvis 运算符 案例 其中我调用每个可能返回 null 的方法并将它们链接在一起 thing nullableMethod1 a nullableMethod2 b nullableMethod3 在 Java 8 中
  • 在Java中清空数组/处理

    除了循环遍历数组中的每个元素并将每个元素设置为 null 之外 Java 处理中是否有一个本机函数可以简单地清空数组 或销毁它 以便能够将其重新声明为新数组 There s Arrays fill myArray null 并不是说它执行的
  • 在 IntelliJ 上进行 Google App Engine Java 开发?

    令人烦恼的是 Google App Engine 已成为其中的另一个项目 他们只发布 Eclipse 插件 如 Spring Webflow 而我更喜欢 IntelliJ 你能用IntelliJ成功运行本地测试环境吗 并调试 部署本地或实时
  • 线程“main”java.lang.UnsatisfiedLinkError中出现异常:java.library.path中没有opencv_java249

    我目前正在尝试在我的 32 位笔记本电脑上设置 OpenCV 但我不断收到一条令我困惑的错误消息 Exception in thread main java lang UnsatisfiedLinkError no opencv java2
  • 静态方法的 Java 内存模型

    我来自操作系统和 C 语言背景 在代码编译时 世界很简单 需要处理和理解堆栈 堆文本部分等 当我开始学习 Java 时 我确实了解 JVM 和垃圾收集器 我对静态方法感到很有趣 根据我的理解 类的所有实例都会在堆中创建 然后被清理 但是 对
  • 使用 Spring Data REST 处理自定义异常 (i18n)

    我正在使用 Spring Boot 1 5 4 和 Spring JPA Spring Data REST HATEOAS 我正在寻找一种最佳实践 Spring 方式 来自定义异常 Spring Data REST 正在管理添加 i18n
  • 使用除 SINGLE_TABLE 之外的任何其他 Hibernate 继承策略时 JVM 崩溃

    好吧 这可能不太可能 但还是这样吧 在Java JRE 1 6 0 26 b03 中我有两个类 SuperControl及其子类SubControl 它们都需要是持久对象 我正在使用 Hibernate Annotations 来实现这一点
  • 是否可以从另一个方法传递 args[] 来调用 main 方法?

    我试图从另一个传递参数的方法调用类的主要方法 就像从命令行运行该类时一样 有没有办法做到这一点 您可以致电main方法就像您调用任何其他 静态 方法一样 MyClass main new String arg1 arg2 arg3 Exam
  • 如何在 Struts 2 OGNL 中将参数传递给方法调用

    我想使用属性作为对象方法的参数
  • 用 java 编写解释器时的 switch 或 if 语句

    当前的作业需要我编写一个程序 以一种非常微小且基本的编程语言 行为有点像 FORTRAN 来读取包含指令的文件并执行这些指令 基本上它是我猜的语言的简单解释器 它是完全线性的 所有语句都是按顺序定义的 并且只有字符串和整数变量 我需要查找和
  • 以编程方式设置 Logback Appender 路径

    我正在尝试以编程方式设置 Logback 附加程序路径 滚动文件附加器 http logback qos ch apidocs ch qos logback core rolling RollingFileAppender html准确地说
  • 从关卡堆栈中获取相对比例的数学

    为这个可怕的标题道歉 我花了 10 分钟试图用一句话来解释这一点 但失败了 虽然提示这个问题的应用程序是用Java Android 编写的 但我认为它非常通用并且适用于任何语言 欢迎使用伪代码 或简单的英语 回复 我不确定是否应该标记所有通
  • BlackBerry SQLite:将一个 SQLite 数据库连接到另一个

    我正在尝试使用 SQLite 将一个 SQLite 数据库附加到 BlackBerry 上的另一个数据库附加数据库 http www sqlite org lang attach html命令 Database d1 d2 Statemen
  • 不要模拟值对象:过于通用的规则,没有解释

    以下是 Mockito 单元测试框架的引用 不要模拟值对象 为什么有人会想要这样做呢 因为实例化对象太痛苦了 gt 无效 原因 如果创造新的装置太困难 那就是一个迹象 代码可能需要一些认真的重构 另一种方法是创建 价值对象的构建者 有一些工
  • 如何从 Google Custom Search API 获取超过 100 个结果

    我正在尝试使用 Google Custom Search API 在 Java 中进行研究 因此 我需要为每个查询提供一个大的结果集 然而 我似乎仅限于前 100 个结果 这比我需要的要少得多 我使用这样的列表方法 list setStar
  • 使用Java开发跨平台,不同平台字体缩放不同

    我正在为我的大学制作一些软件 需要一个 GUI 在它的第一个版本中 我让它使用系统外观 因此它看起来像 Linux Mac Windows 中的本机应用程序 我发现这很麻烦 因为我必须根据操作系统使所有 JLabel 具有不同的大小 无论分
  • 为什么现在()? (客观化)

    为什么我想要异步加载 Objectify 实体 异步加载到底意味着什么 根据客观化有关加载的文档 https code google com p objectify appengine wiki BasicOperations Loadin
  • 从命令行运行 Maven 插件的语法是什么。

    我看到这里已经有人问过这个问题 如何从命令行执行maven插件 https stackoverflow com questions 12930656 how to execute maven plugin from command line
  • 如何使用剪辑来减少绘画时间?

    我正在尝试使用 Clip 来减少 CPU 负载 但剪辑在屏幕上留下了一些我似乎无法摆脱的垃圾 另外 打开和关闭剪辑似乎对 CPU 负载没有影响 在任一情况下 大部分时间似乎都花在重绘管理器和绘制缓冲图像上 import static jav

随机推荐

  • 再次 setTimeout 与 setInterval

    所以我知道之间存在差异setTimeout and setInterval 但请考虑这两个代码示例 function myFunction setTimeout myFunction 100 doSomething setTimeout m
  • 模块解析失败:意外的令牌 ionic 3

    升级到最新的 ionic 和 ionic Angular 模块后 出现此错误 这是升级后我的 Package json 文件 这是升级后我的 Package json 文件 运行时错误 Module parse failed Unexpec
  • 删除行的有效方法(多个条件)VBA

    我有一张表 其中 Col A 中有一个字符串 A Col B 由字符串 B 组成 我想在 A 列中保留带有 Begr ndung 一词的行 在 B 列中保留带有 Nein 一词的行 我正在使用从这些来源找到的以下代码如果单元格不包含 则删除
  • 在后台运行 R

    嗨 这是一个我不知道如何提出的问题 我正在从远程服务器运行 R 我对远程服务器的访问是通过 ssh username 等 访问后 我会看到一个命令提示符 我可以调用 R 并且我很乐意在 R 上工作 问题1 我有一个大型网络 100k 个节点
  • 如何从 stdlib 编写 qsort 的比较函数?

    我有一个结构 struct pkt double x double y double alfa double r kw typedef struct pkt pkt 这些结构的表格 pkt tab pkt tab pkt malloc il
  • Firestore增量浮点问题

    请注意 我知道关于这个问题还有一些其他问题 但没有真正的答案 因此 自从实现增量字段值以来发生的情况是 当增加浮点数时 大多数时候您会得到十几个小数而不是实际数字 incrementing 0 with 0 1 11 times retur
  • 如何使用 vite + React 项目添加自动前缀

    嗨 我使用创建了反应应用程序npm create vite我尝试整合autoprefixer但它不起作用 vite config js import defineConfig from vite import react from vite
  • Chrome扩展程序跨域请求

    我知道这已经在这里讨论过很多次了 我已经阅读了其中的大部分主题 但我似乎无法让我的脚本运行 问题是我正在尝试使用 bitly api 来缩短 google chrome 扩展中的 url 我将用户登录名和 apiKey 保存在本地存储中 在
  • 部署 Azure 应用服务时出错:ERROR_COULD_NOT_CONNECT_TO_REMOTESVC

    我在通过 Azure DevOps 部署应用程序服务时遇到以下错误 我试图搜索这个问题 但找不到根本原因 Error 2021 03 15T06 01 27 7479723Z error Error Error Code ERROR COU
  • 如何添加将调用辅助方法的摩卡期望?

    我正在将一个方法从控制器转移到助手中 现在将从视图中调用该方法 以前 在我的控制器中我有 def show things gather things end 在我的功能测试中我有 test show assigns things do ge
  • 编译需要绑定重定向的C#库项目

    我引用的第三方 dll 需要在 app config 文件中进行绑定重定向 如下所示
  • req.body 未填充表单数据

    以下文件是我尝试向我的nodejs express 服务器提交POST请求 req body 不会填充我的表单中的任何类型的数据 我做了很多搜索 发现针对这个特定问题的许多解决方案包括在我的路线之前移动 bodyparser 并确保在表单字
  • Chart js:如何对齐图例和标题

    我想将订单向左对齐 将图例居中对齐 我试过做 title display true fontSize 18 text Products titleAlign left but textalign似乎对我不起作用horizontal 检查Ch
  • Python - 等待没有高CPU使用率的条件

    在这种情况下 假设我想等待一个可能在任何随机时间发生的条件发生 while True if condition Do Whatever else pass 正如您所看到的 直到条件为 True 时才会发生 pass 但是 虽然条件不成立 但
  • 测试无法直接访问的 RSpec 控制器操作

    我有一个控制器 无法以传统的 RESTful 方式直接访问 而只能通过特定的 url 访问 通常我习惯在控制器规范中使用 get 和 post 来调用控制器操作 有没有一种方法可以通过访问特定的网址来使用我的控制器 EDIT 这是我的路线
  • 如何防止任务同步继续?

    我有一些库 套接字网络 代码提供了Task based API 用于待处理的请求响应 基于TaskCompletionSource
  • std::mt19937 需要预热吗?

    我读到许多伪随机数生成器需要许多样本才能 预热 使用 std random device 播种 std mt19937 时就是这种情况 还是我们可以期望它在构造后准备就绪 有问题的代码 include
  • 如何在 React Native> 中从一个屏幕导航到另一个屏幕?

    解释 我在 android 中使用 React Native 我从登录屏幕开始 并使用 API 成功调用将参数传递到另一个屏幕 我使用 StackNavigation 来导航屏幕 登录成功后 将转到另一个带有参数的屏幕 Issue API调
  • 尝试确定屏幕是否关闭时检测常亮显示

    我正在尝试找出如何检测 Android 上的显示屏是否关闭 并且我感觉 S10 上的常亮显示屏正在影响我的结果 目前 我正在使用中找到的逻辑这个 stackoverflow 答案 还有对该线程的评论这说明你应该能够使用Display FLA
  • 使用paintComponent()在JFrame中绘制矩形

    我正在尝试创建一个使用 JPanel 的 PaintComponent 绘制形状 下面示例中的矩形 的程序 但我无法让它工作 也无法发现问题所在 代码如下 import javax swing import java awt public