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

}

});

}

}

原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/291571.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
小藍的頭像小藍
上一篇 2024-12-25 14:06
下一篇 2024-12-25 14:06

相關推薦

  • Java JsonPath 效率優化指南

    本篇文章將深入探討Java JsonPath的效率問題,並提供一些優化方案。 一、JsonPath 簡介 JsonPath是一個可用於從JSON數據中獲取信息的庫。它提供了一種DS…

    編程 2025-04-29
  • java client.getacsresponse 編譯報錯解決方法

    java client.getacsresponse 編譯報錯是Java編程過程中常見的錯誤,常見的原因是代碼的語法錯誤、類庫依賴問題和編譯環境的配置問題。下面將從多個方面進行分析…

    編程 2025-04-29
  • Java Bean載入過程

    Java Bean載入過程涉及到類載入器、反射機制和Java虛擬機的執行過程。在本文中,將從這三個方面詳細闡述Java Bean載入的過程。 一、類載入器 類載入器是Java虛擬機…

    編程 2025-04-29
  • Java騰訊雲音視頻對接

    本文旨在從多個方面詳細闡述Java騰訊雲音視頻對接,提供完整的代碼示例。 一、騰訊雲音視頻介紹 騰訊雲音視頻服務(Cloud Tencent Real-Time Communica…

    編程 2025-04-29
  • Java Milvus SearchParam withoutFields用法介紹

    本文將詳細介紹Java Milvus SearchParam withoutFields的相關知識和用法。 一、什麼是Java Milvus SearchParam without…

    編程 2025-04-29
  • 用Python繪製酷炫圖片

    在本篇文章中,我們將展示如何使用Python繪製酷炫的圖片。 一、安裝Python繪圖庫 在使用Python繪製圖片之前,我們需要先安裝Python繪圖庫。Python有很多繪圖庫…

    編程 2025-04-29
  • Java 8中某一周的周一

    Java 8是Java語言中的一個版本,於2014年3月18日發布。本文將從多個方面對Java 8中某一周的周一進行詳細的闡述。 一、數組處理 Java 8新特性之一是Stream…

    編程 2025-04-29
  • Java判斷字元串是否存在多個

    本文將從以下幾個方面詳細闡述如何使用Java判斷一個字元串中是否存在多個指定字元: 一、字元串遍歷 字元串是Java編程中非常重要的一種數據類型。要判斷字元串中是否存在多個指定字元…

    編程 2025-04-29
  • VSCode為什麼無法運行Java

    解答:VSCode無法運行Java是因為默認情況下,VSCode並沒有集成Java運行環境,需要手動添加Java運行環境或安裝相關插件才能實現Java代碼的編寫、調試和運行。 一、…

    編程 2025-04-29
  • Java任務下發回滾系統的設計與實現

    本文將介紹一個Java任務下發回滾系統的設計與實現。該系統可以用於執行複雜的任務,包括可回滾的任務,及時恢復任務失敗前的狀態。系統使用Java語言進行開發,可以支持多種類型的任務。…

    編程 2025-04-29

發表回復

登錄後才能評論