java图形
⑴ 用java输出以下图形,怎么做 * ** *** ****
实现思路:就是通过内层循环得到”*“的个数,外层循环控制换行。
for(int i=0;i<4;i++){
for(int j=0;j<=i;j++){
System.out.print("*");
}
System.out.println("");
}
备注:如果不想换行的话,直接去掉外层循环即可。
⑵ 如何用JAVA做出如下图形 * *** *****
public class Test {
public static void main(String[] args) {
Test.print();
}
public static void print(){
int row = 3;//打印的行数
for(int i = 0; i < row; i++){
//循环打印每行前的空格
for(int j = 0; j < row - (i + 1); j++){
System.out.print(" ");
}
//循环打印每行的*
for(int j = 0; j < i*2+1; j++){
System.out.print("*");
}
//单行打印完成后换行
System.out.print(" ");
}
}
}
⑶ 用JAVA绘制各种函数图形
import java.awt.*;
import java.applet.*;
import java.math.*;
import java.awt.event.*;
public class dffg extends Applet implements ActionListener
{
Button bb,bn;
TextField tt;
int aa;
public void init()
{
bb=new Button("画图");
bn=new Button("清除重画");
tt=new TextField(5);
add(bb);
add(tt);
add(bn);
bb.addActionListener(this);
bn.addActionListener(this);
}
public void actionPerformed(ActionEvent e)
{
if(e.getSource()==bb)
{
int aa=Integer.parseInt(tt.getText());
Graphics g=getGraphics();
for(int i=1;i<500;i++)
{
int x=i;
int y=(int)(Math.sin(aa*x*3.14/181)*100+150);
g.drawString("s",x,y);
}
}
if(e.getSource()==bn)
{
repaint();
}
}
}
⑷ 用JAVA写一个简单图形类
public class Test013 {
/**
* 编写一个图形类MyGraphic。 1)它有两个基本属性:图形线条的颜色String lineColor和图形的填充颜色String
* fillColor。 2)设计矩形类CRectangle,有属性double rLong和宽double rWidth, 使用方法 float
* calCircum()可以返回矩形的周长,使用方法float calSquare()可以返回矩形的面积。
* 编写方法show(),显示图形的线条颜色和填充颜色,输出面积和方法。 3)设计圆形类CCircle,定义属性:半径double
* radius,可以通过同名方法计算周长和面积。 编写方法show(),显示图形的线条颜色和填充颜色,输出面积和方法。
* 4)编写出应用程序对CRectangle类和CCircle类进行验证。 完成上述要求即可
*/
public static void main(String[] args) {
MyGraphic rectangle = new CRectangle(10, 5);
rectangle.setFillColor("紫色"); //设定矩形填充颜色
rectangle.setLineColor("白色"); //设定矩形线条颜色
rectangle.show();
System.out.println("矩形周长 = " + rectangle.calCircum());
System.out.println("矩形面积 = " + rectangle.calSquare());
MyGraphic circle = new CCircle(3);
circle.setFillColor("红色");
circle.setLineColor("黄色");
circle.show();
System.out.println("园形周长 = " + circle.calCircum());
System.out.println("园形面积 = " + circle.calSquare());
}
}
/**
* 图形类
*
*/
abstract class MyGraphic {
private String lineColor; // 图形线条的颜色
private String fillColor; // 图形的填充颜色
public String getLineColor() {
return lineColor;
}
public void setLineColor(String lineColor) {
this.lineColor = lineColor;
}
public String getFillColor() {
return fillColor;
}
public void setFillColor(String fillColor) {
this.fillColor = fillColor;
}
public MyGraphic(String lineColor, String fillColor) {
this.lineColor = lineColor;
this.fillColor = fillColor;
}
public MyGraphic() {
}
/**
* 显示图形的颜色
*/
public abstract void show();
/**
* 计算图形的周长
*/
public abstract float calCircum();
/**
* 计算图形的面积
*/
public abstract float calSquare();
}
/**
* 矩形类
*
*/
class CRectangle extends MyGraphic {
private double rLong; // 长
private double rWidth; // 宽
/**
* 通过构造函数为图形的属性赋值
*
* @param rLong
* @param rWidth
*/
public CRectangle(double rLong, double rWidth) {
this.rLong = rLong;
this.rWidth = rWidth;
}
/**
* @return 矩形的周长
*/
@Override
public float calCircum() {
return (float) (2 * (rLong + rWidth));
}
/**
* @return 矩形的面积
*/
@Override
public float calSquare() {
return (float) (rLong * rWidth);
}
@Override
public void show() {
System.out.println("矩形线条的颜色: " + super.getLineColor());
System.out.println("矩形填充颜色: " + super.getFillColor());
}
public double getrLong() {
return rLong;
}
public void setrLong(double rLong) {
this.rLong = rLong;
}
public double getrWidth() {
return rWidth;
}
public void setrWidth(double rWidth) {
this.rWidth = rWidth;
}
}
/**
* 圆形类
*
*/
class CCircle extends MyGraphic {
private double radius; // 圆形半径
public CCircle(double radius) {
this.radius = radius;
}
/**
* @return 圆形的周长
*/
@Override
public float calCircum() {
return (float) (2 * Math.PI * radius);
}
/**
* @return 圆形的面积
*/
@Override
public float calSquare() {
return (float) (Math.PI * radius * radius);
}
@Override
public void show() {
System.out.println("圆形线条的颜色: " + super.getLineColor());
System.out.println("圆形填充颜色: " + super.getFillColor());
}
public double getRadius() {
return radius;
}
public void setRadius(double radius) {
this.radius = radius;
}
}
⑸ Java编写一个图形界面
rcp(SWT/JFace)开发的要不要,同样是java的
⑹ 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中画图形的paint方法
代码如下:
/**分析下例:我们只是new了一个对象并没有调用Paint()方法那为什么会画出图呢?
* Graphics这个类的对象就是一只画笔,当某容器调用paint()时就会在该容器中画图。
* 当窗口产生时本身就存在一只画笔,我们只需要拿到画笔重写Paint()便可以随心作画。
*每次需要重画的时候就会自动调用paint(Graphics g)(什么时候需要重画呢?如当窗口被覆盖又重新置顶时,当窗口最小化又最大化时等等)
*/
总结:我们想要在容器中画图时只需要做的就是:在该容器中重写Paint()系统会自动传给我们画笔,自动调用paint方法按照我们的意愿进行作画。
public class TestGraphics extends Frame. {
public static void main(String []args) {
new TestGraphics("画图",100,100,200,200,Color.white);
}
public TestGraphics(String s,int x,int y,int w,int h,Color c) {
super(s);
this.setBounds(x, y, w, h);
this.setBackground(c);
this.setVisible(true);
}
public void paint(Graphics g) {
Color c = g.getColor();
g.setColor(Color.magenta);
g.fillOval(100, 100, 50, 50);
g.setColor(Color.green);
g.fill3DRect(60, 100, 50, 50, false);
g.setColor(c);
}
}
import java.awt.*;
import java.awt.event.*;
import java.util.*;
/**
原理是:在Frame中增加成员变量-容器ArrayList,用它来容纳点,每次点击鼠标就触发了事件:往容器中添加一个点,然后立即调用repaint方法强制画出容器中所有的点来
所以我们利用容器来"装"点,然后通过iterator来遍历画出所有的点。
适配器类:使用适配器类可以只重写我们需要的方法
因为这些适配器类都已经实现了相应的接口即把所有的方法都空实现了一遍 我们只需要重写我们需要的方法即可
repaint -调用- update() - 调用- paint();
*/
public class MyFrame. extends Frame. {
ArrayList<Point>al ;//泛型指定容器中只能放入Point
public MyFrame(String s) {
super(s);
al =new ArrayList<Point>();
this.setBounds(100, 100, 200, 200);
this.setBackground(Color.darkGray);
this.setVisible(true);
this.addMouseListener(new MouseAdapter(){//匿名类
@Override
public void mousePressed(MouseEvent e) {
MyFrame. f = (MyFrame)e.getSource();//e是事件,e.getSource()是获取事件源即窗口 f
f.al.add(new Point(e.getX(),e.getY())); //而e.getX(),e.getY()则是获取事件发生的x,y坐标
repaint();//每次点击鼠标触发事件时都有了新的点,所以强制要求重画,才能立刻显示出该点否则只有窗口被最小化又最大化后才能看到刚才的点
}
});
//匿名类:在参数处我们传递的是new WindowAdapter() {匿名类体} );他没有名字,我们把它当成WindowAdapter来用,为什么可以这样呢?因为语法上规定了匿名类要么是实现了前面的接口,要么是从前面的类继承,就着前面父类的名字来写类体。当此类与其他类关系不大时可以用匿名类
this.addWindowListener(new WindowAdapter() {
public void windowClosing(WindowEvent e){
System.exit(0);
}
});
}
public void paint(Graphics g) {
Iterator <Point>it= al.iterator();//泛型指定取出元素时只能是point
while(it.hasNext()) {
Point p = it.next();//由于使用泛型这时候就不用强制转换了
Color c = g.getColor();//保护原有颜色
g.setColor(Color.pink);
g.fillOval(p.x-6, p.y-6, 12, 12);
g.setColor(c);
}
}
public static void main(String []args) {
new MyFrame("点击");
}
}
⑻ java输出图形
public static void main(String[] args) {
版int n=10; //可以通过调整n值,调整输出菱形的大小。n=行数权+1
for(int i=1;i<n;i++){
for(int j=1;j<=(i<n/2?n/2-i:i-n/2);j++){
System.out.print(" ");
}
for(int j=1;j<(i<n/2?2*i:2*(n-i));j++){
System.out.print("*");
}
for(int j=1;j<=(i<n/2?n/2-i:i-n/2);j++){
System.out.print(" ");
}
System.out.println();
}
}
⑼ java图形界面
落伍了吗,
db2 的客户端窗口,
oracle 的安装 ,客户端窗口 不都是java做的?
实际上oracle数据库本身就是java做的,从这一点你就可以看出java语言的强大功能。
java 可以开发 控制台程序,窗口程序,web服务器端程序,移动设备嵌入式程序等,别的语言能做的,java都能做。
⑽ java画图形
当s = 0 ,画出填满的圆形
s = 1 ,画出线
s = 2 ,画出菱形
s = 3 ,画出三角形
s = 4 ,画出正方形
s = 5 ,画出五边形
s = 6, 画出六边形