导航:首页 > 编程语言 > java图片显示用什么

java图片显示用什么

发布时间:2025-08-31 01:43:30

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显示ico格式图片

不知道你是不是要这种效果

代码如下:

//要求:在JFrame里面显示一个ico格式的图片,放在JPanel,JLable,或者JButton上

import java.awt.*;

import java.awt.event.*;

import javax.swing.*;

public class MyIcon extends JFrame{

private Icon myIcon;

private JPanel myPanel;

private JLabel myLabel;

private JButton myButton;

private Container c;

public MyIcon(){

c=getContentPane();

myIcon=new ImageIcon("myIcon.jpg");

myPanel=new JPanel();

myPanel.setLayout(new BorderLayout());

myButton=new JButton("这里是按钮显示icon",myIcon); //这里把icon图作为图标

myLabel=new JLabel("这里是JLable显示icon",myIcon,JLabel.LEFT);

myPanel.add(myButton,BorderLayout.SOUTH);

myPanel.add(myLabel,BorderLayout.CENTER);

myPanel.setPreferredSize(new Dimension(100, 100));

c.add(myPanel);

setBounds(100,100,400,300);

setVisible(true);

}

public static void main(String args[]){

MyIcon app=new MyIcon();

}

}

纯手打,求采纳!!

㈢ Java对话框上显示图片

其实有很多种方法可以解决图片显示大小的问题:

  1. 使用photoshop修改. 优点是可以节省系统资源, 显示图片的时候,不用做处理,缺点是需要了解ps的基本操作

  2. 使用JDialog 自定义对话框. 优点 可以实现复杂的效果, 缺点,代码量比较多

  3. 使用ImageIcon, Image 类 实现图片的缩放,. 优点: 纯java代码解决, 缺点: 如果大量的图片需要缩放, 那么可能影响程序的速度.

方案3的代码如下

importjava.awt.Image;
importjavax.swing.ImageIcon;
importjavax.swing.JOptionPane;

publicclassTest{
publicstaticvoidmain(String[]args){
ImageIconicon=newImageIcon("imgs/1.png");//得到icon对象.注意我的图片地址和你的不一样,注意修改!!
Imageimage=icon.getImage();//icon--->Image
floatscale=0.5f;//缩放比例50%
intwidth=Math.round(icon.getIconWidth()*scale);//变小50%的宽
intheight=Math.round(icon.getIconHeight()*scale);//变小50%的高
ImageminiIcon=image.getScaledInstance(width,height,Image.SCALE_SMOOTH);
//image变成指定大小.缩放模式为SCALE_SMOOTH(平滑优先)
ImageIconsmallIcon=newImageIcon(miniIcon);//Image--->icon
JOptionPane.showInputDialog(null,"吃了吗?","标题",0,smallIcon,null,"默认值");
}
}

效果图

图1 图片显示比例为原图的50%

㈣ java中怎样让panel完全透明,只显示上面的图片

import javax.swing.* ;
public class 1 {
public static void main(String args[]){

ImageIcon img = new ImageIcon("1.jpg"); /*负责显示图像的JLable对象*/
JLabel jl = new JLabel(img);

JPanel j = new JPanel() ; /*在JFrame上add上面板j*/
JFrame jf = new JFrame() ;
jf.setContentPane(j) ;

j.add(jl) ; /*在面板j上add上JLable对象j1*/

JPanel jjj = new JPanel() ; /*创建一个透明的面板放在JLable对象j1上负责放控件,此例中放置了一个按钮*/
jl.add(jjj) ;
jjj.setSize(200, 100) ; /*这里注意要设置大小*/
jjj.setOpaque(false) ; /*将负责放置控件的面板设置成透明,详细请查API*/
jjj.add(new JButton("确定")) ; /*添加按钮*/

jf.setVisible(true) ;
jf.setSize(500, 300) ;
}
}
容器从顶层开始顺序如下:
jf(JFrame对象实例) --> j (JPanel对象实例,无须设置透明) --> j1(JLable对象实例,负责显示图片)
--> jjj(JPanel对象实例,负责放置控件,需要设置成透明才不会让自身的底色覆盖了上层图片)

㈤ Java 面板上显示图片的语句怎么写,最好举个例子...

第一种方法:用JLabel显示图片,此种方法图片是一个UI控件,通过布局管理器可放在面板的任意位置,一般用于较小的图标显示,图片上不能再放置其它控件。

第二种方法:在JPanel面板容器中将图片绘制出来,可通过绘制坐标将图片显示在面板的任意位置,一般用于背景图,图片本身不是UI控件,因此图片上还可以放置其它控件。

例子:
package net.miqiang.gui;

import java.awt.Graphics;
import java.awt.Image;

import javax.swing.ImageIcon;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;

/**
* Java面板中显示图片的两种常用方法
* @FileName: TestMain.java
* @Author: 米强 <转载请保留作者与出处>
* @Blog: http://blog.csdn.net/mq612
* @Blog: http://hi..com/mq612/blog
*/
@SuppressWarnings("serial")
public class TestMain extends JFrame {

public TestMain() {
super("显示图片的两种方法");
// JPanel面板容器,放置或绘制图片用
JPanel pane = null;
// 获取一个Image图片对象,使用final修饰为了第二种方法的匿名类可以使用
final Image image = getToolkit().getImage("C:\\face.jpg");
{
// 将第二种方法的代码块全部注释掉,可看到第一种方法显示的图片
// 第一种方法:用JLabel显示图片,此种方法图片是一个UI控件,通过布局管理器可放在面板的任意位置,一般用于较小的图标显示,图片上不能再放置其它控件。
// 通过图片构造一个标签对象
JLabel label = new JLabel(new ImageIcon(image));
// 构造JPanel面板
pane = new JPanel();
// 将标签添加进面板容器
pane.add(label);
}
/*
{
// 将第一种方法的代码块全部注释掉
// 第二种方法:在JPanel面板容器中将图片绘制出来,可通过绘制坐标将图片显示在面板的任意位置,一般用于背景图,图片本身不是UI控件,因此图片上还可以放置其它控件。
// 构造面板对象,由于要重写其中的paintComponent方法,这里使用匿名类,相当于继承了JPanel对象
pane = new JPanel(){
// 重写面板的绘制方法
@Override
protected void paintComponent(Graphics g) {
// 调用父类的paintComponent方法
super.paintComponent(g);
// 使用Graphics绘制图片
g.drawImage(image, 0, 0, this);
}
};
// 随便添加一个按钮控件,该按钮可以显示在图片上方,第一种方法则无法办到。
pane.add(new JButton("按钮可以出现在图片上"));
}
*/
// 将面板添加进窗体的ContentPane中
getContentPane().add(pane);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setSize(500, 400);
setLocationRelativeTo(null);
setVisible(true);
}

public static void main(String[] args) {
new TestMain();
}

}

㈥ java如何读取文件夹中的图片并在界面显示

下面给你提供一个实现,该实现采用了代理模式。这个实现包含两个文件,分别是Client.java和ImageIcoProxy.java,ImageIcoProxy.java负责了图片的延迟加载,你可以修改为不延迟即可。

Client.java的代码为:
import java.awt.Graphics;
import java.awt.Insets;

import javax.swing.Icon;
import javax.swing.JFrame;

public class Client extends JFrame {
private static int IMG_WIDTH = 510;
private static int IMG_HEIGHT = 317;
private Icon imgProxy = null;
public static void main(String[] args) {
Client app = new Client();
app.setVisible(true);
}

public Client() {
super("Virture Proxy Client");
imgProxy = new ImageIcoProxy("D:/test.jpg", IMG_WIDTH, IMG_HEIGHT);
this.setBounds(100, 100, IMG_WIDTH + 10, IMG_HEIGHT + 30);
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
public void paint(Graphics g) {
super.paint(g);
Insets insets = getInsets();
imgProxy.paintIcon(this, g, insets.left, insets.top);
}
}

ImageIcoProxy.java的代码为:
import java.awt.Component;
import java.awt.Graphics;

import javax.swing.Icon;
import javax.swing.ImageIcon;
import javax.swing.SwingUtilities;

public class ImageIcoProxy implements Icon {

private ImageIcon realIcon = null;
private String imgName;
private int width;
private int height;
boolean isIconCreated = false;
public ImageIcoProxy(String imgName, int width, int height) {
this.imgName = imgName;
this.width = width;
this.height = height;
}

public int getIconHeight() {
return realIcon.getIconHeight();
}

public int getIconWidth() {
return realIcon.getIconWidth();
}

public void paintIcon(final Component c, Graphics g, int x, int y) {
if (isIconCreated) {
//已经加载了图片,直接显示
realIcon.paintIcon(c, g, x, y);
g.drawString("Just Test", x + 20, y + 370);
} else {
g.drawRect(x, y, width-1, height-1);
g.drawString("Loading photo...", x+20, y+20);
synchronized(this) {
SwingUtilities.invokeLater(new Runnable() {

public void run() {
try {
Thread.currentThread().sleep(2000);
realIcon = new ImageIcon(imgName);
isIconCreated = true;
} catch (Exception e) {
e.printStackTrace();
}
c.repaint();
}

}
);
}
}
}

}

阅读全文

与java图片显示用什么相关的资料

热点内容
查找pdf文件的检索方式 浏览:468
java中怎样设置窗体透明 浏览:110
上述文件名无效视频文件 浏览:975
plc编程中c指哪个元件 浏览:50
手机怎样打包文件和视频 浏览:834
电力通信用什么编程 浏览:659
摩拜app为什么闪退 浏览:847
魅族18Pro是多少A的数据线 浏览:837
出租房网络如何修复 浏览:251
fifaol3什么时候更新数据 浏览:643
视频文件中毒文件名修改不了 浏览:84
如何使word文件名多行 浏览:597
ripper专杀工具 浏览:169
java程序运行机制 浏览:615
微信密码忘了怎样找到 浏览:879
数据报表需要哪些辅助软件 浏览:356
迪拜快递文件到达国内多少天 浏览:780
ps怎么存放文件 浏览:239
好的qq昵称 浏览:644
php资源扫描工具 浏览:188

友情链接