import java.awt.Graphics;
import java.awt.Color;
import javax.swing.JPanel;
import javax.swing.JFrame;
//下面定义框架类TestRect
public class TestRect extends JFrame
{
// 构造方法
public TestRect()
{
setTitle("Show Rectangles");
getContentPane().add(new RectPanel());
}
// 主方法
public static void main(String[] args)
{
TestRect frame = new TestRect();
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setSize(300,300);
frame.setVisible(true);
}
}
//下面定义面板RectPanel
class RectPanel extends JPanel
{
public void paintComponent(Graphics g) //重写Component类中的方法
{
super.paintComponent(g);
// 为面板绘图,设置红颜色
g.setColor(Color.red);
//画一个矩形
g.drawRect(30, 30, 100, 100);
//画一个圆角矩形
g.drawRoundRect(140, 30, 100, 100, 60, 30);
// 将绘图颜色改为橙色
g.setColor(Color.cyan);
g.fill3DRect(30, 140, 100, 100, true); // Draw a 3D rectangle
g.fill3DRect(140, 140, 100, 100, false); // Draw a raised 3D rectangle
}
}
各位大虾,我想问一下。
这道题中主方法里是怎样调用类RectPanel里面的paintComponent方法。
因为主方法里面或者类TestRect里都没有语句调用paintComponent方法
import java.awt.Color;
import javax.swing.JPanel;
import javax.swing.JFrame;
//下面定义框架类TestRect
public class TestRect extends JFrame
{
// 构造方法
public TestRect()
{
setTitle("Show Rectangles");
getContentPane().add(new RectPanel());
}
// 主方法
public static void main(String[] args)
{
TestRect frame = new TestRect();
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setSize(300,300);
frame.setVisible(true);
}
}
//下面定义面板RectPanel
class RectPanel extends JPanel
{
public void paintComponent(Graphics g) //重写Component类中的方法
{
super.paintComponent(g);
// 为面板绘图,设置红颜色
g.setColor(Color.red);
//画一个矩形
g.drawRect(30, 30, 100, 100);
//画一个圆角矩形
g.drawRoundRect(140, 30, 100, 100, 60, 30);
// 将绘图颜色改为橙色
g.setColor(Color.cyan);
g.fill3DRect(30, 140, 100, 100, true); // Draw a 3D rectangle
g.fill3DRect(140, 140, 100, 100, false); // Draw a raised 3D rectangle
}
}
各位大虾,我想问一下。
这道题中主方法里是怎样调用类RectPanel里面的paintComponent方法。
因为主方法里面或者类TestRect里都没有语句调用paintComponent方法
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货