你是說 JPanel 嗎?兩種方法:
成都創(chuàng)新互聯(lián)專注于碾子山網(wǎng)站建設(shè)服務(wù)及定制,我們擁有豐富的企業(yè)做網(wǎng)站經(jīng)驗。 熱誠為您提供碾子山營銷型網(wǎng)站建設(shè),碾子山網(wǎng)站制作、碾子山網(wǎng)頁設(shè)計、碾子山網(wǎng)站官網(wǎng)定制、小程序開發(fā)服務(wù),打造碾子山網(wǎng)絡(luò)公司原創(chuàng)品牌,更為您提供碾子山網(wǎng)站排名全網(wǎng)營銷落地服務(wù)。
添加 JLabel,給 JLabel 添加 ImageIcon,然后放置 JLabel 到 JPanel 上就行了:
JPanel pnl = new JPanel();
......
JLabel lblImage = new JLabel(new ImageIcon("你的文件名")); //創(chuàng)建一個帶圖片的 JLabel
lblImage.setBounds(0, 0, pnl.getWidth(), pnl.getHeight()); //設(shè)置 圖片的橫坐標(biāo)、縱坐標(biāo)、寬、高
pnl.add(lblImage); //放置這個 JLabel 到你的 JPanel 上面
還有一種方法是重寫 JPanel 的 paint() 方法:
class YourPanel extends JPanel {
private Image img = Toolkit.getDefaultToolkit().createImage("你的文件名"); //用 Toolkit 的 createImage 方法來創(chuàng)建一個 Image 對象
@Override public void paint (Graphics g) {
super.paint(g);
g.drawImage(img, 0, 0, getWidth(), getHeight()); //繪制圖片,第一個參數(shù)是 Image 對象,第二個參數(shù)是 橫坐標(biāo),第三個是 縱坐標(biāo),第四個是 寬,第五個是 高
}
}
以上你隱式重寫也可以:
JPanel pnl = new JPanel() {
@Override public void paint (Graphics g) {
...... //但是要注意這樣如果你把 Image 聲明成了局部變量或者參數(shù)形式,你需要聲明成 final
}
}
實現(xiàn)思路:無論是何種類型,都是轉(zhuǎn)換為流的形式進(jìn)行的文件傳輸和存儲。
可以通過BufferedReader 流的形式進(jìn)行流緩存,之后通過readLine方法獲取到緩存的內(nèi)容。
BufferedReader bre = null;
OutputStreamWriter pw = null;//定義一個流
try {
String file = "D:/test/test.GIF";
bre = new BufferedReader(new FileReader(file));//此時獲取到的bre就是整個文件的緩存流
pw = new OutputStreamWriter(new FileOutputStream(“D:/New.GIF”),"GBK");//確認(rèn)流的輸出文件和編碼格式,此過程創(chuàng)建了“test.GIF”實例
while ((str = bre.readLine())!= null) // 判斷最后一行不存在,為空結(jié)束循環(huán)
{
pw.write(str);//將要寫入文件的內(nèi)容,可以多次write
};
bre.close();
pw.close();//關(guān)閉流
備注:文件流用完之后必須及時通過close方法關(guān)閉,否則會一直處于打開狀態(tài),直至程序停止,增加系統(tǒng)負(fù)擔(dān)。
試了一下,從網(wǎng)上找了個GIF
可以用啊
--------------------------------------------------------------------------------------------
import?java.awt.Graphics;
import?javax.swing.ImageIcon;
import?javax.swing.JFrame;
import?javax.swing.JPanel;
public?class?ImageApp?extends?JFrame?{
public?ImageApp()?{
setDefaultCloseOperation(EXIT_ON_CLOSE);
setLocationRelativeTo(null);
setSize(400,?300);
setResizable(false);
getContentPane().setLayout(null);
JPanel?panel?=?new?ImagePanel();
panel.setBounds(0,?0,?400,?300);
getContentPane().add(panel);
setVisible(true);
}
public?static?void?main(String[]?args)?{
new?ImageApp();
}
class?ImagePanel?extends?JPanel?{
public?void?paint(Graphics?g)?{
super.paint(g);
//?ImageIcon?icon?=?new?ImageIcon("D:\\1.jpg");
ImageIcon?icon?=?new?ImageIcon("D:\\14405937jqhjsppeninjf9.gif");
g.drawImage(icon.getImage(),?0,?0,?400,?300,?this);
}
}
}
Java不支持Gif 的圖片,只會顯示第一幀圖片
一般的實現(xiàn)是:用多個圖,然后,順序循環(huán)的調(diào)用