娇颜:java问题,怎么结果不显示图形呀

来源:百度文库 编辑:高校问答 时间:2024/04/20 01:09:35
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;

public class DrawsDemo1{
public static void main(String args[]){
ShapesFrame sf = new ShapesFrame();
sf.show();
}
}
class ShapesFrame extends JFrame{
public ShapesFrame(){
setTitle("Draws!");
setSize(300,200);

addWindowListener(new WindowAdapter(){
public void windowClosing(WindowEvent e){
System.exit(0);
}
});
Container contentPane = getContentPane();
contentPane.add(new ShapesPanel());
}
}
class ShapesPanel extends JPanel{
public void paintComponet(Graphics g){
super.paintComponent(g);
g.drawLine(0,0,100,100); //画线
g.drawRect(10,10,60,30); //绘制矩形
g.drawRoundRect(90,80,80,80,20,20); //绘制圆角矩形
int xpoints[] = {20,50,60,30,10};
int ypoints[] = {50,50,70,90,70};
g.drawPolygon(xpoints,ypoints,5); //绘制多边形
g.setColor(Color.red);
g.fillRect(90,10,80,30);
g.fillRoundRect(180,50,100,80,15,15);
g.fillOval(10,100,80,30);

}
}

public void paintComponet(Graphics g){
这行敲错了,paintComponent
另外JFrame自带了关闭的方法。修改如下

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

public class DrawsDemo1
{
public static void main(String args[])
{
ShapesFrame sf = new ShapesFrame();
sf.show();
}
}

class ShapesFrame extends JFrame
{
public ShapesFrame()
{
setTitle("Draws!");
setSize(300,200);
setDefaultCloseOperation(EXIT_ON_CLOSE);
/* addWindowListener(new WindowAdapter()
{
public void windowClosing(WindowEvent e)
{
System.exit(0);
}
});
*/
Container contentPane = getContentPane();
contentPane.add(new ShapesPanel());
}
}

class ShapesPanel extends JPanel
{
public void paintComponent(Graphics g)
{
super.paintComponent(g);
g.drawLine(0,0,100,100); //画线
g.drawRect(10,10,60,30); //绘制矩形
g.drawRoundRect(90,80,80,80,20,20); //绘制圆角矩形
int xpoints[] = {20,50,60,30,10};
int ypoints[] = {50,50,70,90,70};
g.drawPolygon(xpoints,ypoints,5); //绘制多边形
g.setColor(Color.red);
g.fillRect(90,10,80,30);
g.fillRoundRect(180,50,100,80,15,15);
g.fillOval(10,100,80,30);
}
}