java顯示圖片的代碼,java讀取圖片并顯示

Java對(duì)話框上顯示圖片

其實(shí)有很多種方法可以解決圖片顯示大小的問(wèn)題:

專注于為中小企業(yè)提供網(wǎng)站設(shè)計(jì)制作、成都網(wǎng)站制作服務(wù),電腦端+手機(jī)端+微信端的三站合一,更高效的管理,為中小企業(yè)衛(wèi)輝免費(fèi)做網(wǎng)站提供優(yōu)質(zhì)的服務(wù)。我們立足成都,凝聚了一批互聯(lián)網(wǎng)行業(yè)人才,有力地推動(dòng)了千余家企業(yè)的穩(wěn)健成長(zhǎng),幫助中小企業(yè)通過(guò)網(wǎng)站建設(shè)實(shí)現(xiàn)規(guī)模擴(kuò)充和轉(zhuǎn)變。

使用photoshop修改. 優(yōu)點(diǎn)是可以節(jié)省系統(tǒng)資源, 顯示圖片的時(shí)候,不用做處理,缺點(diǎn)是需要了解ps的基本操作

使用JDialog 自定義對(duì)話框. 優(yōu)點(diǎn) 可以實(shí)現(xiàn)復(fù)雜的效果, 缺點(diǎn),代碼量比較多

使用ImageIcon, Image 類 實(shí)現(xiàn)圖片的縮放,. 優(yōu)點(diǎn): 純java代碼解決, 缺點(diǎn): 如果大量的圖片需要縮放, 那么可能影響程序的速度.

方案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對(duì)象?.注意我的圖片地址和你的不一樣,注意修改!!

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(平滑優(yōu)先)

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

JOptionPane.showInputDialog(null,?"吃了嗎?",?"標(biāo)題",?0,?smallIcon,?null,?"默認(rèn)值");

}

}

效果圖

圖1 圖片顯示比例為原圖的50%

圖2 圖片顯示比例為原圖的120%

怎么在java面板中顯示一張圖片

是這樣的,你在面板上搞一個(gè)和面板一樣大的JLabel

然后,通過(guò)JFileChooser獲得路徑,利用這個(gè)圖片的路徑,構(gòu)建一個(gè)ImageIcon

最后,根據(jù)這個(gè)ImageIcon去給JLabel對(duì)象setIcon(ImageIcon對(duì)象);

具體地:

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);

}

});

}

}

java圖片顯示代碼

不是很明白,

類似于啟動(dòng)界面的么?

import javax.swing.*;

import java.awt.*;

import java.net.*;

public class JSplashWindow extends JWindow implements Runnable

{

Thread splashThread=null;

public JSplashWindow()

{

setCursor(Cursor.getPredefinedCursor(Cursor.HAND_CURSOR));//設(shè)置啟動(dòng)界面的光標(biāo)樣式

JPanel splash=new JPanel(new BorderLayout());

URL url=getClass().getResource("1.jpg");//獲得指定資源文件的絕對(duì)路徑。

if(url!=null)

{

splash.add(new JLabel(new ImageIcon(url)),BorderLayout.CENTER);

}

setContentPane(splash);

Dimension screen=Toolkit.getDefaultToolkit().getScreenSize();//獲得屏幕的大小

pack();

setLocation((screen.width-getSize().width)/2,(screen.height-getSize().height)/2);//使啟動(dòng)窗口居中顯示

start();

}

public void start()

{

toFront();//window類的toFront()方法可以讓啟動(dòng)界面顯示的時(shí)候暫時(shí)在最前面,用window類的setAlwayOnTop(boolean)方法可以讓窗口總保持在最前面。

splashThread=new Thread(this);

splashThread.start();

}

public void run()

{

try

{

setVisible(true);

Thread.sleep(50000);

}

catch(Exception e)

{

e.printStackTrace();

}

dispose();

}

static void showFrame(String title)

{

JFrame frame=new JFrame(title);

frame.setSize(400,300);

frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

Dimension screenSize=frame.getToolkit().getScreenSize();//獲得屏幕的大小

Dimension frameSize=frame.getSize();

if(frameSize.heightscreenSize.height)

{

frameSize.height=screenSize.height;

}

if(frameSize.widthscreenSize.width)

{

frameSize.width=screenSize.width;

}

frame.setLocation((screenSize.width-frameSize.width)/2,(screenSize.height-frameSize.height)/2);

frame.setVisible(true);

}

public static void main(String[] args)

{

showFrame("Demo splash window");

JSplashWindow splash=new JSplashWindow();

//splash.start();

}

}

/*getToolkit()方法是java.awt.window類的方法它可以得到一個(gè)Toolkit類。Toolkit對(duì)象的getScreenSize()方法可以得到屏幕的大小。

getScreenSize()方法返回一個(gè) Dimension對(duì)象,它的width,height屬性就是屏幕的寬和高。

Object getClass()方法是java.lang.Object類的方法它可以獲得當(dāng)前正在運(yùn)行類的對(duì)象

URL getResource(String name)方法是java.lang.Class類的方法用此方法可以獲得一個(gè)指定資源文件的絕對(duì)路徑。*/

java怎么顯示本地圖片

在面板上搞一個(gè)和面板一樣大的JLabel

然后,通過(guò)JFileChooser獲得路徑,利用這個(gè)圖片的路徑,構(gòu)建一個(gè)ImageIcon

最后,根據(jù)這個(gè)ImageIcon去給JLabel對(duì)象setIcon(ImageIcon對(duì)象);

具體地:

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);

}

});

}

}

java如何讀取文件夾中的圖片并在界面顯示

下面給你提供一個(gè)實(shí)現(xiàn),該實(shí)現(xiàn)采用了代理模式。這個(gè)實(shí)現(xiàn)包含兩個(gè)文件,分別是Client.java和ImageIcoProxy.java,ImageIcoProxy.java負(fù)責(zé)了圖片的延遲加載,你可以修改為不延遲即可。

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) {

//已經(jīng)加載了圖片,直接顯示

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中輸出圖片的代碼

final ImageView iv=(ImageView)findViewById(R.id.iv);

Button bt=(Button)findViewById(R.id.bt);

bt.setOnClickListener(new View.OnClickListener(){

@Override

public void onClick(View p1)

{

// TODO: Implement this method

if(iv.getDrawable()!=null)

iv.setImageResource(R.id.photo);

else iv.setImageResource(0);

}

});

網(wǎng)站欄目:java顯示圖片的代碼,java讀取圖片并顯示
當(dāng)前URL:http://muchs.cn/article16/phesgg.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供Google、用戶體驗(yàn)、企業(yè)網(wǎng)站制作、定制網(wǎng)站網(wǎng)站改版、營(yíng)銷型網(wǎng)站建設(shè)

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)

成都app開(kāi)發(fā)公司