重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
import java.awt.*;
创新互联专注于大方企业网站建设,成都响应式网站建设,商城开发。大方网站建设公司,为大方等地区提供建站服务。全流程按需定制设计,专业设计,全程项目跟踪,创新互联专业和态度为您提供的服务
import java.awt.event.*;
import javax.swing.*;
class Ovalcanvas extends Canvas
{
int N=10;
int x[]=new int[N];
int y[]=new int[N];
Ovalcanvas()
{
setSize(300,200);
setBackground(Color.cyan);
}
public void setOval(int[] x,int[] y,int N)
{
this.N=N;
for(int i=0;iN;i++)
{
this.x[i]=x[i];
this.y[i]=y[i];
}
}
public void paint(Graphics g)
{
g.drawPolygon(x,y,N);
}
}
public class Example6_7 extends JFrame implements ActionListener
{
Ovalcanvas canvas;
TextField in_N;
Button btn;
Example6_7()
{
super("画布上绘制多边形");
setSize(400,300);
setVisible(true);
setDefaultCloseOperation(EXIT_ON_CLOSE);
in_N=new TextField(6);
setLayout(new FlowLayout());
add(new Label("请输入变数:"));
add(in_N);
btn=new Button("确定");
btn.addActionListener(this);
add(btn);
canvas=new Ovalcanvas();
add(canvas);
validate();
}
public void actionPerformed(ActionEvent e)
{
int N=Integer.parseInt(in_N.getText());
int x[]=new int[N];
int y[]=new int[N];
for(int i=0;iN;i++)
{
x[i]=(int)(Math.random()*200);
y[i]=(int)(Math.random()*200);
}
canvas.setOval(x,y,N);
canvas.repaint();
}
public static void main(String[] args)
{
new Example6_7();
}
}
兄弟帮你写了一个:
import java.awt.Button;
import java.awt.Color;
import java.awt.Frame;
import java.awt.Graphics;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
import java.util.Random;
public class Print {
public static void main(String[] args) {
new Te();
}
}
class Te extends Frame implements ActionListener {
Color cc = Color.red;
int x = -20, y = -50;
Random r = new Random();
public Te() {
this.setLayout(null);
Button b = new Button("画圆");
this.add(b);
b.setBounds(30,30,50,50);
b.addActionListener(this);
this.addWindowListener(new WindowAdapter () {
@Override
public void windowClosing(WindowEvent e) {
System.exit(0);
}
});
this.setBounds(200,200,500,400);
this.setVisible(true);
}
public void actionPerformed(ActionEvent e) {
this.cc = Color.red;
this.x = r.nextInt(400);
do {
int x1 = r.nextInt(300);
this.y = x1;
} while (this.y 50);
this.repaint();
}
@Override
public void paint(Graphics g) {
Color c = g.getColor();
g.setColor(cc);
g.drawRect(x,y,50,50);
g.setColor(c);
}
}
你的代码有问题,你的类本身是frame,你也在类中绘制,但是你却没有显示,而是另外定义了一个frame来显示,你修改一下:
import java.awt.Color;
import java.awt.Component;
import java.awt.Frame;
import java.awt.Graphics;
import java.awt.Rectangle;
public class FrameTest extends Frame {
/**
* @param args
*/
public void paint(Graphics g)
{
super.paint(g);
g.setColor(Color.black);
g.fillRect(100, 100, 30, 30);
try {
Thread.sleep(500);
}
catch (Exception ex) {
ex.printStackTrace();
}
//repaint();
}
FrameTest()
{
super("title");
setLocation(100,100);
setSize(600,400);
setVisible(true);
}
public static void main(String[] args) {
// TODO Auto-generated method stub
FrameTest ft=new FrameTest();
}
}
这样应该没问题了。
public void drawRect(int x,
int y,
int width,
int height)
类 Graphics 中的 drawRect
参数:
x - 要绘制矩形的 x 坐标。
y - 要绘制矩形的 y 坐标。
width - 要绘制矩形的宽度。
height - 要绘制矩形的高度。
实心的如下
fillRect
public abstract void fillRect(int x,
int y,
int width,
int height)填充指定的矩形。该矩形左边缘和右边缘分别位于 x 和 x + width - 1。上边缘和下边缘分别位于 y 和 y + height - 1。得到的矩形覆盖 width 像素宽乘以 height 像素高的区域。使用图形上下文的当前颜色填充该矩形。
参数:
x - 要填充矩形的 x 坐标。
y - 要填充矩形的 y 坐标。
width - 要填充矩形的宽度。
颜色g.setColor(参数);
画g.fillRect(参数);