1)文件要有後綴名
2)要用Image或BufferedImage對象
3)因為你重寫了paint()方法,所以不能在Label裡面顯示圖片。你重寫了paint()方法後,整個容器都會變成畫布,所以看不到Label組件,自然也就看不到圖片。應該在paint方法裡面用g.drawImage方法把圖片在畫布中畫出來。參考Java API,Graphics的drawImage方法。
㈡ java國際化文件properties可以寫入圖片么
可以的,但不是放真正的圖片,而是放圖片路徑或是樣式名就可以了。
其實你把問題想復雜了,properties文件里我都看字元串。例如:
方法1:既然是字元串放自己想要的路徑
lang_en_US.properties
mypic=/image/logo_en.jpg
lang_zh_CN.properties
mypic=/image/logo_cn.jpg
方法1:寫兩個樣式名去區別
lang_en_US.properties
mypic=mypic_en
lang_zh_CN.properties
mypic=mypic_cn
我相信通過這種方法你應該可以想到方法3,4等擴展了。他只是字元串的值不同
㈢ JAVA程序怎麼把html的table內容寫入圖片文件中
這個好像不行,不過你可以反過來,就是給table的背景圖片設置成你的圖片這樣子
㈣ 怎麼用java從文件中讀取圖片和寫入圖片到文件里
首先導入各種需要的包:
import java.awt.Image;
import javax.imageio.ImageIO;
import java.io.*;
讀取圖片的方法如下:
Image[] array = new Image[10];
Image image = ImageIO.read(new File("d:\\source.gif"));//根據你實際情況改文件路徑吧
array[0] = image;
圖片讀出來了。
如果你有一個Image對象,想把它寫入文件可以這樣做:
BufferedImage image = ImageIO.read(new File("d:\\source.gif"));
//要想保存這個對象的話你要把image聲明為BufferedImage 類型
ImageIO.write(image, "png", new File("f:\\test.png"));
㈤ JAVA添加圖片
你自己看吧 以前練習的一個小程序 實現了打開本地的jpg圖像文件 並改變它的大小 其他類型的圖像文件也能打開
import java.awt.*;
import java.awt.event.*;
public class ImageViewer extends Frame {
//圖像文件的打開 圖像的縮放 打開本地資源dialog的使用
ImageViewer view = this;
Image image = null;
String dir = "";
public ImageViewer() {
super();
this.setTitle("ImageViewer");
this.setBounds(0, 0, 600, 500);
this.setVisible(true);
this.addWindowListener(new WindowAdapter() {
public void windowClosing(WindowEvent e) {
System.exit(0);
}
});
MenuBar mb = new MenuBar();
this.setMenuBar(mb);
Menu m = new Menu("菜單");
mb.add(m);
MenuItem mi1 = new MenuItem("打開文件");
mi1.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
FileDialog fd = new FileDialog(view, "打開圖像", FileDialog.LOAD);
fd.setFile("*.jpg");
fd.setDirectory(dir);
fd.setVisible(true);
String f = fd.getFile();
dir = fd.getDirectory();
if(f != null) {
image = Toolkit.getDefaultToolkit().getImage(dir + fd.getFile());
image = image.getScaledInstance(600, 500, Image.SCALE_SMOOTH);
}
view.repaint();
}
});
MenuItem mi2 = new MenuItem("退出");
mi2.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
System.exit(0);
}
});
m.add(mi1);
m.add(mi2);
}
private void init() {
System.out.println(1);
}
public void paint(Graphics g) {
if(image != null) {
g.drawImage(image, 0, 0, this);
}
}
public static void main(String args[]) {
new ImageViewer();
}
}
㈥ 在java中怎樣把很多圖片從一個文件夾中寫入到一個imageicon數組中
// 這是一個嵌入到網頁中動態顯示50是張圖片的java小應用程序,希望你對有幫助!
import java.awt.*;
import java.applet.*;
public class Picture extends Applet
{
Image[] theImages;
int nNum = 50;
int nNow = 0;
public void init()
{
theImages = new Image[nNum];
for(int i = 0; i < nNum ; i++)//將圖片裝入數組
theImages[i] = getImage(getDocumentBase(), "pic" + Integer.toString(i) + ".jpg");
}
public void start()
{
nNow = 0;
}
public void paint(Graphics g)
{
g.drawImage(theImages[nNow],500,500,this);
nNow++;
if(nNow>=nNum)
nNow = 0;
try
{
Thread.sleep(50);
}
catch(Exception e){showStatus(e.toString());}
repaint();
}
public void main()
{
Graphics g;
g=this.getGraphics ();
init();
start();
paint(g);
}
}
㈦ 怎麼在Java里添加背景圖片
//一個小例子
//注意:
//當前目錄下要有一個p.jpg文件
//壓縮這個文件使它的大小盡量小,最好只有幾十KB
//否則無法顯示背景圖片
import javax.swing.*;
import java.awt.*;
public class Demo extends JFrame {
public static void main(String[] args) {
new Demo();
}
public Demo() {
//載入圖片
pic=Toolkit.getDefaultToolkit().getImage("p.jpg");
MediaTracker t=new MediaTracker(this);
t.addImage(pic,1);
try
{
t.waitForID(1);
}
catch(Exception e)
{
}
setSize(400,400);
setLocationRelativeTo(null);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setVisible(true);
}
//覆蓋(重寫)paint方法以在窗口中添加一張圖片
public void paint(Graphics g) {
g.drawImage(pic,0,0,null);
}
Image pic;
}
㈧ java 圖片文件的讀取和寫入問題
讀寫是兩個不同的分支,通常都是分開單獨使用的,但是原則就是什麼文件的流就要用相應的流進行存儲。
可以通過BufferedReader 流的形式進行流緩存,之後通過readLine方法獲取到緩存的內容。
BufferedReader bre = null;
try {
String file = "D:/test/test.png";
bre = new BufferedReader(new FileReader(file));//此時獲取到的bre就是整個文件的緩存流
while ((str = bre.readLine())!= null) // 判斷最後一行不存在,為空結束循環
{
System.out.println(str);//原樣輸出讀到的內容
};
備註: 流用完之後必須close掉,如上面的就應該是:bre.close(),否則bre流會一直存在,直到程序運行結束。
可以通過「FileOutputStream」創建文件實例,之後過「OutputStreamWriter」流的形式進行存儲,舉例:
OutputStreamWriter pw = null;//定義一個流
pw = new OutputStreamWriter(new FileOutputStream(「D:/test.png」),"GBK");//確認流的輸出文件和編碼格式,此過程創建了「test.txt」實例
pw.write("我是要寫入到記事本文件的內容");//將要寫入文件的內容,可以多次write
pw.close();//關閉流
備註:文件流用完之後必須及時通過close方法關閉,否則會一直處於打開狀態,直至程序停止,增加系統負擔。
㈨ 用Java寫上傳文件(圖片)
首先希望我的回答能給你帶來幫助
首先寫一個上傳類
public class procts_shang_chuang {
public static boolean GOTO(String paht,FormFile file)
{
boolean bool =false;
int betered = 0;
byte[] buufer = new byte [2042];
if(file.getFileSize()>0&&file.getFileSize()<500000)
{
try {
InputStream in = file.getInputStream();//寫入文件
OutputStream out = new FileOutputStream(paht);
while((betered=in.read(buufer, 0, 2042))!=-1)
{
out.write(buufer, 0, betered);//將文件寫入伺服器
}
in.close();
out.close();
bool = true;
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
bool = false;
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
bool = false;
e.printStackTrace();
}
}
return bool;
}
public static boolean delete_file(String path)
{
File file = new File(path);
boolean bool = false;
if(file.isFile())
{
System.out.println("文件存在");
bool = file.delete();
}
return bool;
}
}
這個類主要是上傳和刪除圖片的類
那麼下來直接調用就可以了 通過頁面往action中提交數據
if(form instanceof Procts_addForm)//如果form是FilesForm
{
String engding = request.getCharacterEncoding();
if((engding != null) && (engding.equalsIgnoreCase("utf-8")))
{
response.setContentType("text/html; charset=gb2312");//如果沒有指定編碼,編碼格式為gb2312
}
FormFile file = procts_addForm.getFiles();
inpa = Huoqu_weiyi_biaoshi.getUniqueId();
String path = request.getRealPath("/guanliyuan/ji_zhu_procts_img/"+(inpa+file.getFileName()));
System.out.println(path);
String name = file.getFileName();
inpa = "/guanliyuan/ji_zhu_procts_img/"+inpa+file.getFileName();
bool = procts_shang_chuang.GOTO(path, file);
}
這樣就把圖片上傳上去了 仔細看看 批量上傳和這個一樣只是需要做一點點的改動而已
有什麼不明白的可以聯系我Q號:549726411
㈩ java write方法寫一張圖片若該文件本來就存在會出現什麼情況
new FileOutputStream("xxx.xxx", append);
當append為true時,從文件末尾寫入數據。
當append為false時,從文件頭部寫入,就是覆蓋,默認為false。
本來就存在,默認會覆蓋