你是說 JPanel 嗎?兩種方法:
成都創新互聯專注于碾子山網站建設服務及定制,我們擁有豐富的企業做網站經驗。 熱誠為您提供碾子山營銷型網站建設,碾子山網站制作、碾子山網頁設計、碾子山網站官網定制、小程序開發服務,打造碾子山網絡公司原創品牌,更為您提供碾子山網站排名全網營銷落地服務。
添加 JLabel,給 JLabel 添加 ImageIcon,然后放置 JLabel 到 JPanel 上就行了:
JPanel pnl = new JPanel();
......
JLabel lblImage = new JLabel(new ImageIcon("你的文件名")); //創建一個帶圖片的 JLabel
lblImage.setBounds(0, 0, pnl.getWidth(), pnl.getHeight()); //設置 圖片的橫坐標、縱坐標、寬、高
pnl.add(lblImage); //放置這個 JLabel 到你的 JPanel 上面
還有一種方法是重寫 JPanel 的 paint() 方法:
class YourPanel extends JPanel {
private Image img = Toolkit.getDefaultToolkit().createImage("你的文件名"); //用 Toolkit 的 createImage 方法來創建一個 Image 對象
@Override public void paint (Graphics g) {
super.paint(g);
g.drawImage(img, 0, 0, getWidth(), getHeight()); //繪制圖片,第一個參數是 Image 對象,第二個參數是 橫坐標,第三個是 縱坐標,第四個是 寬,第五個是 高
}
}
以上你隱式重寫也可以:
JPanel pnl = new JPanel() {
@Override public void paint (Graphics g) {
...... //但是要注意這樣如果你把 Image 聲明成了局部變量或者參數形式,你需要聲明成 final
}
}
實現思路:無論是何種類型,都是轉換為流的形式進行的文件傳輸和存儲。
可以通過BufferedReader 流的形式進行流緩存,之后通過readLine方法獲取到緩存的內容。
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");//確認流的輸出文件和編碼格式,此過程創建了“test.GIF”實例
while ((str = bre.readLine())!= null) // 判斷最后一行不存在,為空結束循環
{
pw.write(str);//將要寫入文件的內容,可以多次write
};
bre.close();
pw.close();//關閉流
備注:文件流用完之后必須及時通過close方法關閉,否則會一直處于打開狀態,直至程序停止,增加系統負擔。
試了一下,從網上找了個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 的圖片,只會顯示第一幀圖片
一般的實現是:用多個圖,然后,順序循環的調用