如何在Java中实现JPanel的paintComponent()方法?\n
JPanel是一个轻量级容器,它是Java中的一个不可见组件。JPanel的默认布局是FlowLayout。创建JPanel后,可以通过调用其从Container类继承的add()方法将其他组件添加到JPanel对象中。
paintComponent()
此方法用于在JPanel上绘制除绘制背景颜色之外的其他内容。此方法已存在于JPanel类中,因此我们需要使用super声明向此方法添加内容,并以Graphics对象作为参数。super.paintComponent()表示JPanel的普通paintComponent()方法,它只能处理面板的背景,必须在第一行调用。
语法
protected void paintComponent(Graphics g)
示例
import java.awt.*;
import javax.swing.*;
public class SmileyApp extends JPanel {
@Override
public void paintComponent(Graphics g) {
super.paintComponent(g);
g.setColor(Color.YELLOW);
g.fillOval(10, 10, 200, 200);
// draw Eyes
g.setColor(Color.BLACK);
g.fillOval(55, 65, 30, 30);
g.fillOval(135, 65, 30, 30);
// draw Mouth
g.fillOval(50, 110, 120, 60);
// adding smile
g.setColor(Color.YELLOW);
g.fillRect(50, 110, 120, 30);
g.fillOval(50, 120, 120, 40);
}
public static void main(String[] args) {
SmileyApp smiley = new SmileyApp();
JFrame app = new JFrame("Smiley App");
app.add(smiley, BorderLayout.CENTER);
app.setSize(300, 300);
app.setLocationRelativeTo(null);
app.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
app.setVisible(true);
}
}输出
广告
数据结构
网络
关系型数据库管理系统
操作系统
Java
iOS
HTML
CSS
Android
Python
C语言编程
C++
C#
MongoDB
MySQL
Javascript
PHP