java - drawLine 不显示
问题描述
我在尝试画一条简单的线时遇到了一点问题。谁能告诉我我做错了什么?我在网上找不到任何可以帮助我的东西。
package practice;
import java.awt.Color;
import java.awt.Dimension;
import java.awt.Graphics;
import javax.swing.JFrame;
import javax.swing.JPanel;
public class Practice extends JPanel {
public void PaintComponent(Graphics g){
super.paintComponent(g);
g.setColor(Color.BLACK);
g.drawLine(1, 1, 50, 50);
System.out.println("called");
}
public static void main(String[] args) {
JFrame f = new JFrame();
f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
f.add(new Practice());
f.setPreferredSize(new Dimension(400, 400));
f.pack();
f.setVisible(true);
}
}
解决方案
您拼错了方法的名称:它paintComponent
以小写 p 开头。
案例很重要,特别是在这种情况下,您希望多态性调用“练习” paintComponent
,而不是 JPanel。
顺便说一句,您应该@Override
在公共 void 方法之上使用标记paintComponent(Graphics g)
(您的 IDE 会标记您的方法不是任何现有方法的覆盖)。
推荐阅读
- mongodb - Mongodb 是否需要 $concat 新索引
- c# - 保存文件的问题(ASP.NET、Angular)
- java - 为什么 spark dataframe.take 会抛出异常不兼容的类型?
- reactjs - NextJS / MongoDB - 将数据从一个集合分配到另一个集合
- python - 如何将 gekko 对象插入/附加到现有列表/数组?
- python - 为什么此约束会引发 DCP 错误?
- node.js - 无法使用 ES6 模块在 nodejs 中导入模块
- sql - 我正在使用的 PDO 中的 execute() 函数有一些问题
- gsap - 到达视口底部时,ScrollTrigger 切换功能
- javascript - 在 Chrome/Safari 中删除和重新添加元素不会使用 Vue 更新数组