您的位置:

java显示图片,java输出图片

本文目录一览:

Java图片显示不出来,怎么解决

有两个问题:

图片路径没有写对,图片在 src 下,图片路径应是 src/海洋.png,正确的写法应是 image = new ImageIcon("src/海洋.png")

image = new ImageIcon("src/海洋.png") 应该放在 label = new JLabel(image); 前面。

如下例:

import javax.swing.*;

class JPanelDemo extends JPanel {

JLabel label;

JTextField text;

JButton button;

ImageIcon image;

public JPanelDemo() {

image = new ImageIcon("src/test.png");

label = new JLabel(image);

text = new JTextField(20);

button = new JButton("确定");

add(label);

add(text);

add(button);

}

}

public class App extends JFrame {

public App() {

this.setSize(500, 400);

this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

this.add(new JPanelDemo());

}

public static void main(String[] args) {

new App().setVisible(true);

}

}

Java对话框上显示图片

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

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

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

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

方案3的代码如下

import java.awt.Image;

import javax.swing.ImageIcon;

import javax.swing.JOptionPane;

public class Test {

public static void main(String[] args) {

ImageIcon icon = new ImageIcon("imgs/1.png"); // 得到icon对象 .注意我的图片地址和你的不一样,注意修改!!

Image image = icon.getImage(); //icon---Image

float scale = 0.5f; //缩放比例 50%

int width = Math.round(icon.getIconWidth()*scale); // 变小 50%的宽

int height= Math.round(icon.getIconHeight()*scale);// 变小50%的高

Image miniIcon = image.getScaledInstance(width, height, Image.SCALE_SMOOTH);

// image 变成指定大小. 缩放模式为 SCALE_SMOOTH(平滑优先)

ImageIcon smallIcon = new ImageIcon(miniIcon);// Image---icon

JOptionPane.showInputDialog(null, "吃了吗?", "标题", 0, smallIcon, null, "默认值");

}

}

效果图

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

图2 图片显示比例为原图的120%

JAVA 中在一个组件上显示图片的所有方法

所有方法我可不知道,介绍个最常用的:通过Graphics对象来进行绘图,要获得此对象可通过方法getGraphics()来实现,举个例子:Graphics g=getGraphics();g.drawImage(image,0,0,this);drawImage()函数是Graphics对象的一个方法,意思就是把image画到本对象的0,0位置。此函数有很多重载的方法: drawImage(Image,int,int,ImageObserver);不再说了。 drawImage(Image,int,int,Color,ImageObserver);需要说的是Color是指的图片的背景色,如果图片有透明的区域,就用这个背景色。其余的参数含义刚说了,就不重复了。 drawImage(Image,int x,int y,int width,int height,ImageObserver);把image画在ImageObserver的x,y位置,宽为width,高为height。如果图片的大小与指定的宽高不一致,就会进行缩放,总是把整张图全画进去。 drawImage(Image,int,int,int,int,Color,ImageObserver);意思跟刚刚的一样,Color还是背景色。 drawImage(Image,int x1,int y1,int width1,int height1,int x2,int y2,int width2,int height2,ImageObserver);先将图片裁剪,从x2,y2开始裁,留下的图像宽为width2,高为height2,再把这个裁好的图画到ImageObserver的x1,y1上,大小为width1,height1,如果大小不一致还是用缩放的办法。 drawImage(Image,int,int,int,int,int,int,int,int,Color,ImageObserver);跟上面的一样,Color是背景色。 需要注意的是getGraphics()方法是JComponent对象的方法,所有的Swing对象都继承JComponent对象,所以象JFrame等类都有这个方法,也就是说,此方法不能在JComponent对象以外的地方调用,显然的不能写在main方法里。drawImage()函数里的Image对象可以这样用:Image image=Toolkit.getDefaultToolKit().getImage("my.jpg");这样就获得了一张图片。drawImage()函数里的ImageObserver对象其实就是JComponent对象,因为ImageObserver是个接口,JComponent类实现了它,所以所有的JComponent对象就是ImageObserver对象,就是JFrame,JPanel等对象。当然还有很多方法,刚才说了缩放的裁剪,其实图像的过滤还有很多内容,要说起来的话恐怕要上万字了,我懒得说那么多了...这个方法挺好用的,一般的软件就用这个就没问题了,除非你说你想做个photoshop那我就爱莫能助了。再举个例子吧,显示一张图片://Display.java//-------------------------------import javax.swing.JFrame;import java.awt.Toolkit; public class Display extends JFrame{ private Image image; public JFrame(){super("MyDisplay");image=Toolkit.getDefaultToolkit().getImage("my.jpg");//图片换成你自己的this.setSize(800,600);} public void paint(Graphics g){g.drawImage(image,0,0,800,600,this);//画图片,这里的paint方法系统自动调用,并且还传递进来了Graphics对象,省的再自己用getGraphics方法了。} public static void main(String[] args){new Display().setVisible(true);} }就说这么多吧,要真讲起来实在太麻烦了,介绍本书给你:java2图形设计卷I:AWT,java2图形设计卷II:SWING,这两本书够你看的了,虽然内容老旧,10年前的书,但是讲的全是基础,而且里面的东西现在还在用。你要是E文好就去SUN官网看技术文档或者jdk的帮助文档。

java随机图片显示

参考代码.  你可以对照修改

import java.awt.BorderLayout;

import java.awt.Image;

import java.awt.Toolkit;

import javax.swing.*;

public class Picture extends JFrame {

private JLabel picture;

public Picture() {

ImageIcon[] icons = new ImageIcon[4];//四张图的icon对象

String photopath = "";

for (int i = 1; i = 4; i++) {

//这里的目录是我的图片所在的目录 1.gif~4.gif

photopath = "src/images/" + i + ".gif";

Image img = Toolkit.getDefaultToolkit().createImage(photopath);

icons[i-1] = new ImageIcon(img);

}

picture = new JLabel();

JPanel jp = new JPanel();

jp.add(picture);

add(jp,BorderLayout.CENTER);

setBounds(500, 200, 200, 200);

setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);

int n = Integer.parseInt(JOptionPane.showInputDialog("input: "));

//先设置Jlabel应该显示的图片

picture.setIcon(icons[n-1]);

//然后才开始显示窗口

this.setVisible(true);

}

public static void main(String[] args) {

new Picture();

}

}

为什么Java里的图片需要调整窗口大小才能正常显示?

窗口显示的速度很快。当显示带有图片的窗口时,如果你的图片的加载不是同步的,可能窗口都显示完了,你的图片还没有加载完,当然不会显示图片。而调整窗口的大小会导致重新绘制窗口,如果此时你的图片加载完了,就会显示出来,如果还是没有加载完,也不会显示。这与图片的加载方式有关,应采用同步的加载方式,确保窗口显示前,图片已加载完。

java怎么显示本地图片

在面板上搞一个和面板一样大的JLabel

然后,通过JFileChooser获得路径,利用这个图片的路径,构建一个ImageIcon

最后,根据这个ImageIcon去给JLabel对象setIcon(ImageIcon对象);

具体地:

1.panel.add(label,BorderLayout.CENTER);

2.ImageIcon icon = new ImageIcon(url);

3.label.setIcon(icon);

下面的代码你把 .JPG改成BMP试试看,O(∩_∩)O~

package com.shlq.sample;

import java.awt.BorderLayout;

import java.awt.event.WindowAdapter;

import java.awt.event.WindowEvent;

import javax.swing.ImageIcon;

import javax.swing.JFrame;

import javax.swing.JLabel;

import javax.swing.JPanel;

public class ImagePane extends JPanel

{

JLabel jl = null;

ImageIcon img = null;

public ImagePane()

{

img = new ImageIcon( "E:\\Picture\\1.jpg ");

jl = new JLabel(img);

this.setLayout(new BorderLayout());

this.add(jl, BorderLayout.CENTER);

}

public static void main(String[] args)

{

JFrame test = new JFrame( "Image Pane ");

test.getContentPane().add(new ImagePane());

test.pack();

test.setVisible(true);

test.addWindowListener(new WindowAdapter()

{

public void windowClosing(WindowEvent e)

{

System.exit(0);

}

});

}

}