首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

无法使用super.paintComponent(g)在JFrame中显示JPanel。Java中的空JFrame

在Java中,如果想要在一个空的JFrame中显示一个JPanel,并且使用super.paintComponent(g)方法进行绘制,可以按照以下步骤进行操作:

  1. 创建一个继承自JPanel的自定义面板类,例如MyPanel。
  2. 在MyPanel类中重写paintComponent(Graphics g)方法,用于绘制自定义的图形或组件。
  3. 在paintComponent方法中调用super.paintComponent(g)方法,以确保绘制的内容能够正确显示。
  4. 在MyPanel类中添加所需的其他组件或图形。
  5. 创建一个继承自JFrame的主窗口类,例如MainWindow。
  6. 在MainWindow类的构造方法中,设置窗口的大小、关闭操作和布局管理器。
  7. 创建一个MyPanel对象,并将其添加到MainWindow类的内容面板中。
  8. 调用MainWindow类的setVisible(true)方法,使窗口可见。

以下是一个示例代码:

代码语言:txt
复制
import javax.swing.*;
import java.awt.*;

class MyPanel extends JPanel {
    @Override
    protected void paintComponent(Graphics g) {
        super.paintComponent(g);
        // 在这里进行自定义的绘制操作
    }
}

class MainWindow extends JFrame {
    public MainWindow() {
        setSize(400, 300);
        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        setLayout(new BorderLayout());

        MyPanel panel = new MyPanel();
        add(panel, BorderLayout.CENTER);
    }
}

public class Main {
    public static void main(String[] args) {
        SwingUtilities.invokeLater(() -> {
            MainWindow window = new MainWindow();
            window.setVisible(true);
        });
    }
}

在这个示例中,我们创建了一个自定义的面板类MyPanel,并在其中重写了paintComponent方法。在MainWindow类中,我们设置了窗口的大小、关闭操作和布局管理器,并将MyPanel对象添加到内容面板中。最后,通过调用setVisible(true)方法,使窗口可见。

这样,当运行程序时,就会显示一个空的JFrame窗口,并在其中显示MyPanel中绘制的内容。注意,为了简化示例,我们没有在paintComponent方法中进行具体的绘制操作,你可以根据自己的需求进行相应的绘制。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

Data Structure_JavaSwing

Java Swing基础 首先需要注意就是JFrame这个类,如果在main类整直接new一个出来是没有任何变化,需要设置一个setvisible为true来显示出来。...Content Pane其实是一个容器,可以装载其他组件,最常用就是面板,Jpanel就是一个面板,后面的绘制都会画在Jpanel上。也就是说想要画上东西就需要在Jframe上加入Jpanel。...绘制 Jpanel类里面有一个paintComponent方法,这个方法是自带一个方法,需要绘制操作都要在这里面画。paintComponent带了一个画笔参数。...但其实如果是仅仅在2D图像上画其实可以使用Graphic2D来画,把Graphic转换成Graphic2D就好了,而paintComponent是没有2D这个参数。...我们视觉上就会看到闪烁了一下,有一个经典解决方法,就是用双缓存,也就是两个画布,用画布切换来演示动画运行。

53330

java山寨qq账号密码验证_java swing实现QQ账号密码输入框

先上效果图 正常显示效果: 腾讯QQ登录界面的账号密码输入部分效果比对: 下面直接给出代码吧 AccountPanel: import java.awt.BasicStroke; import java.awt.Color...; import java.awt.Graphics; import java.awt.Graphics2D; import java.awt.RenderingHints; import javax.swing.JPanel...accountPanel.setLayout(null); accountPanel.setBounds(30, 15, 190, 30); frame.add( accountPanel); //账号面板添加文本框...0, 153, 30); accountTF.setOpaque(false); accountTF.setBorder(null); accountPanel.add(accountTF); //账号面板文本框后添加按钮...153, 30); passwordPF.setOpaque(false); passwordPF.setBorder(null); passwordPanel.add(passwordPF); //账号面板文本框后添加按钮

2.3K20

Java AWT 图形界面编程】Canvas 绘制超大图片 ( 使用鼠标拖动查看全图 | 设置 JFrame 窗口自动关闭 | 获取并绘制图片 | 鼠标拖动计算位移 | 画布偏移 )

一、Canvas 绘制超大图片要点 ---- 1、设置 JFrame 窗口自动关闭 创建 JFrame 窗口后 , 通过调用 JFrame#setDefaultCloseOperation 可以设置窗口自动关闭...关闭窗口并退出应用 frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 2、获取并绘制图片 AWT , 使用 Toolkit.getDefaultToolkit...startX += dx; startY += dy; } }); 4、画布偏移 初始时 , 画布偏移为 0 , 但是 鼠标不断拖动过程...; public class LargeCanvas extends JPanel { // 鼠标按下时坐标 以及 更新后坐标 private int startX, startY...{ super.paintComponent(g); // 画布进行整体偏移 Graphics2D g2 = (Graphics2D)g;

1.4K20

Java|系统登录功能设计与制作

解决方案 1 内容面板 所有组件都要布置在窗体内容面板上,而登录模块内容面板使用了背景图片来美化窗体界面,这就需要继承SwingJPanel类来编写自己面板类,然后将该面板类作为窗体内容面板。...g){ super.paintComponent(g); g.drawimage(img,0,0,this); // 以左上角为起点 } } 2 登录窗体 创建...登录按钮动作事件监听器,首先获取用户输入用户名与密码信息,然后调用Dao类checkLogin()方法,如果该方法返回true,则登录成功,否则禁止用户登录,并显示提示语句。...系统登录窗体密码文本框添加了按键事件监听器,它在获取到密码文本框输入回车字符时将执行登录事件。...checkLogin()方法使用,该方法是验证用户登录信息关键所在。

1.3K20

Java AWT 图形界面编程】使用鼠标滚轮放大缩小 Canvas 画布 ( 鼠标滚轮事件监听器 MouseWheelListener )

Canvas 组件 , 调用 addMouseWheelListener 函数 , 添加 鼠标滚轮监听器 MouseWheelListener , 实现该监听器 void mouseWheelMoved...} } 二、绘制超大图像 + 鼠标拖动 + 鼠标滚轮缩放示例 ---- Java AWT 图形界面编程】Canvas 绘制超大图片 ( 使用鼠标拖动查看全图 | 设置 JFrame 窗口自动关闭...| 获取并绘制图片 | 鼠标拖动计算位移 | 画布偏移 ) 博客 , 绘制了超大图像 , 可以使用鼠标拖动 , 这里在上述基础上 , 新增鼠标滚轮缩放示例 ; 1、代码示例 代码示例 : import...extends JPanel { // 鼠标按下时坐标 以及 更新后坐标 private int startX, startY; // 当前位置偏移 private...{ super.paintComponent(g); // 画布进行整体偏移 Graphics2D g2 = (Graphics2D)g;

2.2K30

算法可视化 顶

绘制模版 根据以上圆球代码,我们将其抽象成一个以后用于填充各种算法绘制模版,根据MVC原理 显示层 @Getter public class AlgoFrame extends JFrame {...显示层 @Getter public class AlgoFrame extends JFrame { private class AlgoCanvas extends JPanel {...当然概率论也有一个基本公式 1 - (0.8)^5 = 0.67232 现在我们可以来看一下,如果我们心理值是95%概率能拿到传奇武器,那么我们需要开多少次呢?...由于此种方式无法展现排序主要过程,所以我们做出修改。...插入排序可视化 插入排序算法是将数组元素不断向前比较,直到放入到一个适当合适位置排序算法,它就好像我们玩扑克牌时候进行整理牌面一样。插入排序也是一个O(n^2)时间复杂度算法。 ?

1K30

贪吃蛇大作战java代码_java做贪吃蛇需要用到哪些知识

(3)使用键盘监听事件和定时器实现小蛇移动。 (4)小蛇与食物碰撞实现。 (5)定义变量存放小蛇长度,遍历数组实现小蛇身体增加功能。...{//画笔对象 super.paintComponent(g); //绘制顶部标题 new ImageIcon("C:/Users/Desktop/img/title2.png")....---- 总结 本游戏设计思路类似于游戏“贪吃蛇大作战”,程序一些功能实现上还存在许多不足,但该项目的实现对Java新手实战能力有很大提升。...使用Java编写该项目时遇到了很多问题,解决问题时,可以对java面向对象编程有更加深入理解和认识。 ---- 本项目在一定程度上还有缺陷,仅用于初学者学习,欢迎各位指正。...个人主页: 青00 (一起学Java博客_CSDN博客-一起学Java,Java领域博主 ?我《一起学Java》板块持续更新,欢迎各位编程爱好者前来观看!

89620

Java制作520表白代码——爱一个人需要理由吗?

2023年5月20日这个特殊日子里,我要用一段特别的代码来向你传递我对你深情。这段代码由Java语言编写,以表白为主题,将带给你无法拒绝浪漫体验。...✨简介 背景: "520"这个数字源于汉字发音,它与"我爱你"这句表达爱意中文词语相似。因此,"520"中国文化中被赋予了浪漫和表白含义。...社交媒体流行:随着社交媒体兴起,人们更容易"520"这一天分享自己爱情故事、浪漫瞬间和表白场景。这使得"520"成为了一个全民参与浪漫日子。...Java编程作为表白方式 技术与情感结合,通过使用Java编程作为表白方式,程序员们将技术与情感相结合。这不仅仅是展示他们编程技能,更是表达他们对心爱的人关心和爱意。...JPanel p=new JPanel(); frame1.add(p); //设置布局,设置为布局 p.setLayout(null);

17010

Java AWT 图形界面编程】使用小键盘按键缩放 Canvas 画布绘制背景图像 ( 键盘按键监听 + 绘制超大图像 + 鼠标拖动 + 鼠标滚轮缩放 + 以当前鼠标指针位置为缩放中心 示例 )

Java AWT 图形界面编程】Canvas 绘制超大图片 ( 使用鼠标拖动查看全图 | 设置 JFrame 窗口自动关闭 | 获取并绘制图片 | 鼠标拖动计算位移 | 画布偏移 ) 博客 , 绘制了超大图像..., 可以使用鼠标拖动 ; Java AWT 图形界面编程】使用鼠标滚轮放大缩小 Canvas 画布 ( 鼠标滚轮事件监听器 MouseWheelListener ) 博客 , 新增鼠标滚轮缩放画布示例..., 但是使用鼠标拖动时 , 拖动效果也随之缩放, 如 缩小画布后 , 移动鼠标 , 移动距离对应缩放效果也随之缩小 ; Java AWT 图形界面编程】使用鼠标滚轮放大缩小 Canvas 画布绘制背景图像...java.awt.event.*; public class LargeCanvas extends JPanel { // 鼠标按下时坐标 以及 更新后坐标 private...{ super.paintComponent(g); // 画布进行整体偏移 Graphics2D g2 = (Graphics2D)g;

1.8K20

五子棋Java课设

,从白子变黑子交替落下 第三步:设计五子棋下棋方式,获胜判定等 设计黑白棋子落下,首先黑子B会在棋盘上方显示“黑方下棋” 利用JPanel(面板容器类)界面中用来分别添加棋盘界面和按钮界面...显示“黑方下棋”使用宋体18号字来显示。 3.设计棋盘类,整体规划棋盘横纵方向,以Button(按钮组件类)界面作为按键,如“重新开始”按键。...6.与画布棋盘时相似,使用paintComponent()函数进行棋子落子判定,鼠标点在格子十字交叉点周围进行分析 MouseEvent(鼠标监听事件类)里面包含鼠标被点击等事件处理方法。...{ super.paintComponent(g); Graphics2D g2 = (Graphics2D)g; for(int i=1;i<=16;i++){ g2...(0, 0, getSize().width-1, getSize().height-1); // 焦点上画出一个标签 super.paintComponent(g

69110

Java一分钟之-Swing基础:JFrame, JPanel, JButton

Java Swing是Java GUI编程库一部分,提供了丰富组件和布局管理器来构建桌面应用程序。SwingJFrameJPanel和JButton是构建用户界面的基础组件。...本文将介绍这三个组件用法,常见问题以及如何避免错误,同时提供代码示例。 1. JFrame JFrame是Swing顶级容器,用于展示应用程序主窗口。...如果不调用setVisible(true),窗口将不会显示。 避免方法:确保添加所有组件后调用setVisible(true)。 问题2:忘记设置关闭操作。...避免方法:使用setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE)关闭应用程序。 2. JPanel JPanel是Swing容器组件,用于组合其他组件。...在实践,结合不同布局管理器和组件,你可以构建出各种复杂界面。

6310

java swing一篇轻松学习(高考后可以自学)

setDefaultLookAndFeelDecorated (boolean defaultLookAndFeelDecorated) 设置 JFrame 窗口使用 Windows 外观(如边框、...添加到组件 int getIconTextGap() 返回此标签显示文本和图标之间间隔量 int getHorizontalTextPosition() 返回 JLabel 文本相对其图像水平位置...list.setSelectionMode(ListSelectionModel.SINGLE_SELECTION); scrollPane.setViewportView(list); //滚动面板显示列表...c) 如果在子菜单层次结构存在指定组件,则返回 true isPopupMenuVisible() 如果菜单弹出窗口可见,则返回 rue isSelected() 如果菜单是当前选择(即高亮显示...返回 JTable 可以显示行数(给定无限空间) getRowSorter() 返回负责排序对象 getSelectedColumn() 返回第一个选定列索引,如果没有选定列, 则返回 -1

9.3K10
领券