「java的图」java的图形化界面

博主:adminadmin 2023-01-28 17:15:06 474

本篇文章给大家谈谈java的图,以及java的图形化界面对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。

本文目录一览:

Java程序中图片的使用方法

使用图像根据需要,可以有多种方法。

如果是放在组件中,如JButton、JLabel中,这些组件需要的是Icon接口的图像,那么使用ImageIcon类来加载图像比较好,new

ImageIcon(String

filename)或new

ImageIcon(URL

location)都可以直接加载图像文件。

甚至你还可以先用IO读出byte流,也能用byte[]创建ImageIcon。还可以由已有的Image来创建。

更为高级的用法是,你还可以先创建个空的ImageIcon,然后重写paintIcon(Component,Graphics,int,int)方法实现手工绘制!

如果你是要完成图像绘制,那么使用Image或BufferedImage比较好。

Toolkit.getDefaultToolkit().getImage(String或URL)就能加载图像。

这种方法需要一个图像观察者来监视图像是否加载完成,因为图像加载是异步的。通常,你用一个swing组件就可以充当这个角色。不过少用JLabel,因为我有一个程序用JLabel做观察者CPU占用率经常90%多,有时不出界面。用JPanel或JFrame都没出过这个问题。从API文档看,应该是所有的swing可视组件都实现了观察者接口。

选了观察者后,不用刻意观察加载情况,很简单的一个方法:swing组件的while(!prepareImage(Image));就可以了。

Image接口是Graphics类绘图drawImage要用的,所以绘制时应该选这个。

BufferedImage是实现了Image接口的图像,可以直接操作像索数据!所以利用算法生成图像再绘制,或图像处理可以使用这种方法。如浮雕、反色等。

加载方法是ImageIO类的read方法。

java 加载图片的几种方式

第一种方法:

Image bg;  //或者是BufferedImage bg;

Pool2(){

try{

String file="图片的路径";

bg =ImageIO.read(new File(file));

}catch(Exception e){

e.printStackTrace();

}

}

第二种方法:这种方法用BufferedReader就不行

Image background;

Pool2(){

try{

String file="文件的路径";

background=Toolkit.getDefaultToolkit().getImage(file);

}catch(Exception e){

e.printStackTrace();

}

}

另外我们有时喜欢把图片放在工程的src目录下这样访问这些图片时就要用下面的方法。以src下的image文件下的01.jpg为例

Image image=null;

image = ImageIO.read(getClass().getResourceAsStream("/image/01.jpg"));

java有哪些图结构

链表,线性表,栈,队列,hash表!

数据结构:

①数组 (Array)

在程序设计中,为了处理方便, 把具有相同类型的若干变量按有序的形式组织起来。这些按序排列的同类数

据元素的集合称为数组。在C语言中, 数组属于构造数据类型。一个数组可以分解为多个数组元素,这些数组

元素可以是基本数据类型或是构造类型。因此按数组元素的类型不同,数组又可分为数值数组、字符数组、指

针数组、结构数组等各种类别。

②栈 (Stack)

栈是只能在某一端插入和删除的特殊线性表。它按照先进后出的原则存储数据,先进入的数据被压入栈底,最后

的数据在栈顶,需要读数据的时候从栈顶开始弹出数据(最后一个数据被第一个读出来)。

③队列 (Queue)

一种特殊的线性表,它只允许在表的前端(front)进行删除操作,而在表的后端(rear)进行插入操作。进行

插入操作的端称为队尾,进行删除操作的端称为队头。队列中没有元素时,称为空队列。

④链表 (Linked List)

一种物理存储单元上非连续、非顺序的存储结构,数据元素的逻辑顺序是通过链表中的指针链接次序实现的。

链表由一系列结点(链表中每一个元素称为结点)组成,结点可以在运行时动态生成。每个结点包括两个部分:

一个是存储数据元素的数据域,另一个是存储下一个结点地址的指针域。

⑤树 (Tree)

树是包含n(n0)个结点的有穷集合K,且在K中定义了一个关系N,N满足 以下条件:

(1)有且仅有一个结点 k0,他对于关系N来说没有前驱,称K0为树的根结点。简称为根(root)

(2)除K0外,k中的每个结点,对于关系N来说有且仅有一个前驱。

(3)K中各结点,对关系N来说可以有m个后继(m=0)。

⑥堆 (Heap)

在计算机科学中,堆是一种特殊的树形数据结构,每个结点都有一个值。通常我们所说的堆的数据结构,是指

二叉堆。堆的特点是根结点的值最小(或最大),且根结点的两个子树也是一个堆。

⑦图 (Graph)

图是由结点的有穷集合V和边的集合E组成。其中,为了与树形结构加以区别,在图结构中常常将结点称为顶点,

边是顶点的有序偶对,若两个顶点之间存在一条边,就表示这两个顶点具有相邻关系。

⑧散列表 (Hash)

若结构中存在关键字和K相等的记录,则必定在f(K)的存储位置上。由此,不需比较便可直接取得所查记录。称

这个对应关系f为散列函数(Hash function),按这个思想建立的表为散列表。

java图片

package draw;

import java.applet.*;

import java.awt.*;

public class DrawImage extends Applet implements Runnable{

Image img;

int w,h,x,y;

public void init(){

System.out.println(getCodeBase());

img=getImage(getCodeBase(),"hudie.jpg");

//返回class的路径

//img=getImage(getDocumentBase(),"a.gif");

//返回的html的路径

this.setSize(400,400);

w=img.getWidth(this);

h=img.getHeight(this);

this.start();

new Thread(this).start();

}

public void paint(Graphics g){

g.drawImage(img,x,y,w,h,this);

// g.drawImage(img,20,10,this);

// g.drawImage(img,350,10,w/2,h/2,this);

// g.drawImage(img,20,200,w*2,h/3,this);

// g.drawImage(img,20,250,w/2,h*2,this);

// this.setSize(400,400);

}

@Override

public void run() {

while(true) {

try {

Thread.sleep(500);

if(y this.getHeight())

y = 0;

else

y ++;

repaint();

} catch (InterruptedException e) {

// TODO Auto-generated catch block

e.printStackTrace();

}

}

}

}

关于java的图和java的图形化界面的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。