‘壹’ 如何用java实现图形的放大和缩小
要用Java实现图形的放大和缩小,可以使用以下代码:
import java.awt.*;import java.awt.event.*;import javax.swing.*;//实现矩形在规定时间间隔里循环放大缩小;
public class Test02 extends JFrame implements Runnable{static int w = 0,h = 0;//w:矩形宽度,h:矩形高度 ;
boolean flag = false;//false:放大,true:缩小public Test02(){this.setSize (500,500);this.setVisible (true);this.setTitle (w+","+h);this.setLocationRelativeTo (this);this.setDefaultCloseOperation (JFrame.EXIT_ON_CLOSE);}public void paint(Graphics g){int width = getWidth();
//窗口宽度int height = getWidth();//窗口高度g.setColor (Color.WHITE);//设置画笔颜色g.fillRect (0,0,width,height); //填充窗口int x = (width-w)/2;//x:矩形左上角横坐标int y = (height-h)/2;//y:矩形左上角纵坐标g.setColor (Color.BLUE);//同上...g.drawRect (x,y,w,h);
//画矩形,实心矩形为fillRect(....)g.setColor (Color.RED);//同上...g.drawOval (x,y,w,h); //画椭圆setTitle (w+","+h); //以矩形宽和高来设置窗口标题}public void setSize(){float n = getWidth()/getWidth();if(w==0||h==0)flag = false;
if(w==getWidth()||h==getWidth())flag = true;if(!flag){w+=1;h+=n;}if(flag){w-=1;h-=n;}}public void run(){while(true){try{Thread.sleep (5);//间隔}catch(InterruptedException ie){}setSize();repaint();}}public static void main(String[] args){Test02 t = new Test02();Thread th = new Thread(t);th.start();}}
‘贰’ 如何用java实现画图
使用Java的Graphics类进行绘图
Graphics类提供基本的几何图形绘制方法,主要有:画线段、画矩形、画圆、画带颜色的图形、画椭圆、画圆弧、画多边形等
‘叁’ Java图形
我试一下,你的direction只有一个方向,用一个变量记住2个参数是不合适的。
需要同时跟踪x和y上的方向,因为对于小球来说,实际上有4方向,而不是2个。或者你用记住一个角度也可以,以后碰壁之后,用三角形计算出另一个角度。每次移动时用三角函数sin(a)和cos(a)计算出x和y的步长。当在一个位置碰壁时只应该改变其中一个坐标的加减方向,而你改变direction就相当于同时改变了x和y的加减方向。
下面部分代码修改了。
privateintdirectionX;
privateintdirectionY;
publicMovingComponent(){
x=0;
y=0;
directionX=1;
directionY=1;
}
publicvoidpaintComponent(Graphicsg){
g.setColor(Color.GREEN);
g.fillOval(x,y,WIDTH,HEIGHT);
}
publicvoidmove(){
intheight=getHeight();
intwidth=getWidth();
//先试探性移动,记住两个方向的坐标变化本身互不相关的。
intnextX=x+2*directionX;
intnextY=y+2*directionY;
if(nextX<0||nextX>width-WIDTH){
//碰壁后调整方向,然后重新计算位置x。
directionX=-1*directionX;
nextX=x+2*directionX;
}
if(nextY<0||nextY>height-HEIGHT){
//碰壁后调整方向,然后重新计算位置y.
directionY=-1*directionY;
nextY=y+2*directionY;
}
x=nextX;
y=nextY;
repaint();
}
‘肆’ java怎么实现图形化界面
java图形化界面还是有很多内容要学习的,可以参考 如下实例:
publicclassTestextendsJFrame{
MyPanelmp=null;
publicstaticvoidmain(String[]args){
//TODOAuto-generatedmethodstub
Testjf=newTest();
}
publicTest(){
mp=newMyPanel();
this.add(mp);
//设置标题
this.setTitle("绘图");
//设置窗体大小
this.setSize(400,300);
//设置窗体的位置
this.setLocation(100,100);
//限制窗体的大小
this.setResizable(false);
//关闭窗体时,同时退出java虚拟机
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
//显示窗体
this.setVisible(true);
}
}
//定义一个MyPanel(我自己的面板,用于绘图和实现绘图区域)
classMyPanelextendsJPanel
{
//覆盖JPanel的paint方法
//Graphics是绘图的重要类,可以把它理解成一只画笔
publicvoidpaint(Graphicsg)
{
//1。调用父类函数完成初始化
super.paint(g);
////画圆
//g.drawOval(100,100,20,20);
////画直线
//g.drawLine(50,150,150,200);
////画矩形边框
//g.drawRect(150,150,30,40);
//
////设置颜色。默认为黑色
//g.setColor(Color.blue);
////填充矩形
//g.fillRect(10,10,20,30);
//画弧形
g.drawArc(200,10,100,150,120,-80);
//在面板上画图片
Imageim=Toolkit.getDefaultToolkit().getImage(Panel.class.getResource("图片路径"));
//显示图片
g.drawImage(im,10,10,200,180,this);
//画字
g.setColor(Color.red);
g.setFont(newFont("华文彩云",Font.BOLD,20));
g.drawString("要写的字",80,220);
}
}
‘伍’ java画图形
当s = 0 ,画出填满的圆形
s = 1 ,画出线
s = 2 ,画出菱形
s = 3 ,画出三角形
s = 4 ,画出正方形
s = 5 ,画出五边形
s = 6, 画出六边形
‘陆’ JAVA图形界面设计
importjava.awt.Color;
importjava.awt.Font;
importjava.awt.Graphics;
importjavax.swing.JFrame;
importjavax.swing.JPanel;
{
publicTestFrame(){
add(newCirclePanel());
setSize(300,230);
setLocationRelativeTo(null);
setDefaultCloseOperation(EXIT_ON_CLOSE);
} publicstaticvoidmain(String[]args){
newTestFrame().setVisible(true);
}
//绘制图形的面板
classCirclePanelextendsJPanel{
intR=50;//直径
@Override
protectedvoidpaintComponent(Graphicsg){
super.paintComponent(g);
g.setColor(Color.BLUE);//设置颜色为蓝色
g.drawOval(80,30,R,R);//圆形外接矩形的左顶点坐标是80,30;
g.setColor(Color.BLACK);
g.drawOval(120,30,R,R);
g.setColor(Color.RED);
g.drawOval(160,30,R,R);
g.setColor(Color.YELLOW);
g.drawOval(100,65,R,R);
g.setColor(Color.GREEN);
g.drawOval(140,65,R,R);
g.setColor(Color.BLUE);//设置颜色为蓝色
g.setFont(newFont("宋体",Font.BOLD,22));//设置字体
g.drawString("奥运五环旗",90,160);
}
}
}