當前位置:首頁 » 編程語言 » java添加背景圖片

java添加背景圖片

發布時間: 2022-05-23 12:28:56

Ⅰ 如何在java的窗口中添加背景圖片

class
p
extends
jpanel
{
public
void
paint(graphics
g)
{
super.paint(g);
try
{
file
f
=
new
file("g:\\4.jpg");
url
url
=
f.touri().tourl();
imageicon
img
=
new
imageicon(url);
g.drawimage(img.getimage(),
0,
0,
this);
}
catch
(exception
e)
{
}
}
}
繼承jpanel
重寫paint方法.
如果是label的話,有屬性可以添加背景圖片

Ⅱ java中如何設置背景圖片

1 利用標簽組件來設置
標簽本來是一種最簡單的組件,為什麼可以將它設置成為一個窗體的背景呢?首先還是要了解框架JFrame中的層次結構。JFrame中的層次分布及相對關系是:最底層是JRootPane,第二層是JlayerPane,最上層就是ContentPane,也正是我們常說的內容面板。所以一般我們拖放的控制項就是在ContentPane層上。也就是說我們只需將背景圖片放在JFrame的第二層是JlayerPane上,再把內容面板ContentPane設置為透明,則第二層JlayerPane上放置的圖片即成為內容面板的背景了。具體代碼如下:
JPanelpnlMain=new JPanel(); //創建面板pnlMain。
getContentPane().add(pnlMain); //將pnlMain設置為主面板。
Iconi=new ImageIcon("背景.jpg"); /*用源圖片「背景.jpg」構造一個ImageIcon對象i,需要注意如果圖片的路徑使用的是相對路徑,則圖片文件必須放在類文件所在文件夾或項目的根文件夾中,否則圖片的路徑必須用絕對路徑。*/
JLabellblLogo = new JLabel(i); //用指定的圖片構造標簽對象lb
this.getLayeredPane().add(lb, new Integer(Integer.MIN_VALUE));
//把標簽放在第二層JlayerPane上。
lb.setBounds(0, 0,ii.getIconWidth(),i.getIconHeight());
//設置標簽的尺寸,即背景圖象的大小。
getConentPane().setOpaque(false); /*把內容面板設置為透明,這樣整個框架的背景就不再是內容面板的背景色,而是第二層中標簽的圖像。*/
pnlMain.add(lb); //將標簽添加到主面板pnlMain中。
用標簽組件JLabel來設置窗體背景,其擴展性上比較差,且在標簽上不能放置其他組件,比如:在放置一個JButton,整個布局背景圖就錯亂。導致這種現象是因為Java載入組件是有順序的,作為背景的JLabel的代碼一定要放在全部組件代碼的最後,這樣JLabel的背景圖片才不會被其他組件遮住,從而使整個布局背景錯亂。所以採用這種方式來設置窗體背景有很大的局限性。因此最好是採用以下方式來設置窗體背景。
2 通過JPanel面板來設置窗體背景
JPanel面板是Java中的容器之一。而Java中的容器是沒有背景圖片的屬性的,它們只有背景顏色,如果需要在JPanel面板上設置窗體背景,就需要重寫paintComponent(Graphics g)方法,即把所要設置的背景圖片畫上作為JPanel面板的背景。具體實現如下:
首先定義一個JPanel的子類BjPanel,由於JPanel的構造方法不能添加圖像,因此在創建此子類的時候先用getImage載入一幅背景圖片,在重寫paintComponent(Graphics g)方法時,利用drawImage方法將其逐漸繪制到屏幕上,並將該面板添加到框架中,最後將該面板設置為透明。其代碼如下:
import java.awt.*;
import javax.swing.*;
public class bkground
{
public static void main(String args[])
{
BjFramef=newBjFrame();
f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
f.setVisible(true);
}
}
class BjFrame extends JFrame
{
public BjFrame()
{
setSize(WTH,HHT);
BjPanel pl=new BjPanel();
Container contentPane=getContentPane();
contentPane.add(pl);
pl. setOpaque(true);
}
public static final int WTH=300;
public static final int HHT=200;
}
class BjPanel extends JPanel
{
Image im;
public BjPanel()
{
im=Toolkit.getDefaultToolkit().getImage("背景.jpg");//需要注意的是如果用相對路徑載入圖片,則圖片文件必須放在類文件所在文件夾或項目的根文件夾中,否則必須用絕對路徑。
}
public void paintComponent(Graphics g)
{
super.paintComponent(g);
int imWidth=image.getWidth(this);
Int imHeight=image.getHeight(this); //定義圖片的寬度、高度
int FWidth=getWidth();
int FHeight=getHeight();//定義窗口的寬度、高度
int x=(FWidth-imWidth)/2;
int y=(FHeight-imHeight)/2;//計算圖片的坐標,使圖片顯示在窗口正中間
g.drawImage(image,x,y,null);//繪制圖片
}
}

Ⅲ java程序中如何插入背景圖片

我們繼承(擴展一個 JPanel / JFrame) 之類的組件,覆蓋它的 paintComponent(Graphics g) 方法,因為 Swing 為了支持 Look and Fee (皮膚效果),把這些繪圖操作委託給了某某UI,基本上每個組件都有一個對應的UI 的不同版本,比如 Windows XP 和 Windows Classic 經典樣式,還有 Linux 上經典金屬質感的樣式。我們如果只是替換背景圖,不需要弄個UI,就直接用 paintComponent 方法來做。


例如:

下面是 ComponentUI 類的方法,

看下面這個代碼,當不透明時先塗背景色,然後再來 paint 組件。所以你的操作類似於,先把背景圖片縮放到100%,能鋪滿這個背景,然後先塗背景圖,再來塗孩子控制項。


至少具體細節,你可以寫一個自己的某某UI 類,在 JPanel 上 myPanel.setUI 替換掉之後,我們在這個自己的 UI 類中的方法添加行斷點,觀察 Swing 在什麼時候進來了,根據 Eclipse debug 視圖提供的 Thread Stack 可以查看各級的方法名並自動跳到對應的JDK自帶的源碼中。

publicvoipdate(Graphicsg,JComponentc){
if(c.isOpaque()){
g.setColor(c.getBackground());
g.fillRect(0,0,c.getWidth(),c.getHeight());
}
paint(g,c);
}

Ⅳ java如何在布局中添加圖片作為背景問題,怎麼解決

簡單來說就是重寫paint方法,然後調用畫筆的drawImage這個方法。
如:
對一個JPanel加入背景圖片「bg01.png」,那麼就重寫paint這個方法如下
在類里
/**
*
背景圖片
*/
Image
backgroundImage
=
null;
//這就是重寫paint方法
public
void
paint(Graphics
g)
{
loadRecources();
if(backgroundImage
!=
null)
{
g.drawImage(backgroundImage,
0,
0,
this);
}
}
public
void
loadRecources()
{
//載入背景圖片
if(backgroundImage
==
null)
{
try
{
backgroundImage
=
ImageIO.read(new
File("resources/Images/bg01.png"));
}
catch
(IOException
e)
{
System.out.println("缺少背景圖片");
JOptionPane.showMessageDialog(this,
"找不到背景圖片!",
"文件缺失",
JOptionPane.ERROR_MESSAGE);
}
}
}
這里只是寫的一個示例代碼,lz看看,然後分析下寫一個類,然後如此嘗試下,應該很快就能成功。

Ⅳ 怎麼在Java里添加背景圖片

可以新建個面板,在面板里放入帶圖片的JLabel,填滿面板即可。
JPanel jp = new JPanel(); //新建面板
jp.setLayout(new FlowLayout()); //設置面板布局
ImageIcon ii=new ImageIcon(getClass().getResource("/Picture/i.jpg"));
JLabel uppicture=new JLabel(ii); //往面板里加入JLabel
this.setVisible(true);

Ⅵ java中如何增加背景圖片

一個例子:
import
java.awt.FlowLayout;
import
javax.swing.ImageIcon;
import
javax.swing.JButton;
import
javax.swing.JFrame;
import
javax.swing.JLabel;
import
javax.swing.JPanel;
public
class
bj
{
private
JFrame
frame
=
new
JFrame("背景圖片測試");
private
JPanel
imagePanel;
private
ImageIcon
background;
public
static
void
main(String[]
args)
{
new
bj();
}
public
bj()
{
background
=
new
ImageIcon("C:\\Users\\xin.wen\\Pictures\\2.jpg");//
背景圖片
JLabel
label
=
new
JLabel(background);//
把背景圖片顯示在一個標簽裡面
//
把標簽的大小位置設置為圖片剛好填充整個面板
label.setBounds(0,
0,
background.getIconWidth(),
background.getIconHeight());
//
把內容窗格轉化為JPanel,否則不能用方法setOpaque()來使內容窗格透明
imagePanel
=
(JPanel)
frame.getContentPane();
imagePanel.setOpaque(false);
//
內容窗格默認的布局管理器為BorderLayout
imagePanel.setLayout(new
FlowLayout());
imagePanel.add(new
JButton("測試按鈕"));
frame.getLayeredPane().setLayout(null);
//
把背景圖片添加到分層窗格的最底層作為背景
frame.getLayeredPane().add(label,
new
Integer(Integer.MIN_VALUE));
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setSize(background.getIconWidth(),
background.getIconHeight());
frame.setResizable(false);
frame.setVisible(true);
}
}

Ⅶ java窗體如何添加背景圖片

Ⅷ 怎麼為Java程序添加背景圖片代碼

僅僅是給窗口添加背景的話是很簡單的,添加上以下語句(自己去添加變數哈):

label = new JLabel(background); //background為ImageIcon
// 把標簽的大小位置設置為圖片剛好填充整個面板
label.setBounds(0, 0, this.getWidth(), this.getHeight());
//添加圖片到frame的第二層(把背景圖片添加到分層窗格的最底層作為背景)
this.getLayeredPane().add(label,new Integer(Integer.MIN_VALUE));
//把內容窗格轉化為JPanel,否則不能用方法setOpaque()來使內容窗格透明
jPanel=(JPanel)this.getContentPane();
//設置透明
jPanel.setOpaque(false);

然後你上面那個JPanel p也設置成透明就可以了

Ⅸ JAVA界面設計怎麼插入背景圖片

可以利用標簽組件來設置。

Ⅹ 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;
}

熱點內容
高級語言都要編譯解析型語言 發布:2025-02-13 15:06:32 瀏覽:304
openwrt源碼下載 發布:2025-02-13 15:01:59 瀏覽:644
linux刪除一個目錄 發布:2025-02-13 15:00:29 瀏覽:539
螞蟻存儲 發布:2025-02-13 15:00:25 瀏覽:918
腳本師傳奇 發布:2025-02-13 14:45:48 瀏覽:481
我的世界lce伺服器剪輯 發布:2025-02-13 14:40:50 瀏覽:625
phpsftp上傳 發布:2025-02-13 14:35:43 瀏覽:274
c學生管理系統資料庫 發布:2025-02-13 14:21:41 瀏覽:123
傳奇添加會員腳本 發布:2025-02-13 14:20:50 瀏覽:206
微信開發平台源碼 發布:2025-02-13 14:14:20 瀏覽:614