僅僅是給窗口添加背景的話是很簡(jiǎn)單的,添加上以下語(yǔ)句(自己去添加變量哈):\x0d\x0a\x0d\x0alabel = new JLabel(background); //background為ImageIcon\x0d\x0a// 把標(biāo)簽的大小位置設(shè)置為圖片剛好填充整個(gè)面板 \x0d\x0alabel.setBounds(0, 0, this.getWidth(), this.getHeight());\x0d\x0a//添加圖片到frame的第二層(把背景圖片添加到分層窗格的最底層作為背景)\x0d\x0athis.getLayeredPane().add(label,new Integer(Integer.MIN_VALUE));\x0d\x0a//把內(nèi)容窗格轉(zhuǎn)化為JPanel,否則不能用方法setOpaque()來(lái)使內(nèi)容窗格透明\x0d\x0ajPanel=(JPanel)this.getContentPane();\x0d\x0a//設(shè)置透明\x0d\x0ajPanel.setOpaque(false);\x0d\x0a\x0d\x0a然后你上面那個(gè)JPanel p也設(shè)置成透明就可以了
目前成都創(chuàng)新互聯(lián)已為成百上千家的企業(yè)提供了網(wǎng)站建設(shè)、域名、網(wǎng)站空間、網(wǎng)站改版維護(hù)、企業(yè)網(wǎng)站設(shè)計(jì)、科爾沁網(wǎng)站維護(hù)等服務(wù),公司將堅(jiān)持客戶導(dǎo)向、應(yīng)用為本的策略,正道將秉承"和諧、參與、激情"的文化,與客戶和合作伙伴齊心協(xié)力一起成長(zhǎng),共同發(fā)展。
用Swing包下的ImageIcon類就可以實(shí)現(xiàn),比如在一個(gè)按鈕中添加一張圖片,就可以用以下代碼實(shí)現(xiàn):ImageIcon imageicon =new ImageIcon(String s);JButton b=new JButton(imageicon); 其中參數(shù)s是所要添加圖片的路徑(絕對(duì)路徑或相對(duì)路徑)和名字。如想添加D盤下的圖片1.jpg,就可以將上面改成:ImageIcon imageicon =new ImageIcon("D:\1.jpg");
1)文件要有后綴名
2)要用Image或BufferedImage對(duì)象
3)因?yàn)槟阒貙懥藀aint()方法,所以不能在Label里面顯示圖片。你重寫了paint()方法后,整個(gè)容器都會(huì)變成畫布,所以看不到Label組件,自然也就看不到圖片。應(yīng)該在paint方法里面用g.drawImage方法把圖片在畫布中畫出來(lái)。參考Java API,Graphics的drawImage方法。
圖片名字是img1.JPG,你放到本程序的目錄下面就好了。
import java.awt.*;
import java.awt.event.*;
import java.awt.image.*;
import java.io.*;
import javax.imageio.*;
import javax.swing.*;
public class TestMenu1 extends JFrame{
private JTextArea textArea=new JTextArea();
private JMenuBar menuBar=new JMenuBar();
private JMenu fileMenu=new JMenu("文件");
private JMenu viewMenu=new JMenu("視圖");
private JMenu toolMenu=new JMenu("工具欄");
private JMenuItem[] fileItem={new JMenuItem("新建"),new JMenuItem("打開(kāi)"),new JMenuItem("保存"),new JMenuItem("退出")};
private JMenuItem[] viewItem={new JMenuItem("普通"),new JMenuItem("頁(yè)面")};
private JCheckBoxMenuItem[] toolItem={new JCheckBoxMenuItem("常用"),new JCheckBoxMenuItem("繪圖"),new JCheckBoxMenuItem("符號(hào)欄")};
private JPanel jPanel1;
private JLabel jLabel;
private Image image;
private ImageIcon imageIcon ;
public TestMenu1(String title){
super(title);
jPanel1=new JPanel();
image = Toolkit.getDefaultToolkit().getImage("img1.JPG");
jLabel = new JLabel();
imageIcon = new ImageIcon(image);
jLabel.setIcon(imageIcon);
add(jLabel, BorderLayout.NORTH);
add(jPanel1, BorderLayout.SOUTH);
setVisible(true);
setSize(600, 600);
ActionListener actListener=new ActionListener(){
public void actionPerformed(ActionEvent e){
if(((JMenuItem)e.getSource()).getText()=="退出"){
System.exit(0);
}else{
textArea.setText(((JMenuItem)e.getSource()).getText());
}
}
};
ItemListener itemListener=new ItemListener(){
public void itemStateChanged(ItemEvent e){
String str=new String("");
for(int i=0;itoolItem.length;i++){
if(toolItem[i].isSelected()){
str+=toolItem[i].getText()+"\n";
}
}
if(str.length()==0){
textArea.setText("沒(méi)有復(fù)選");
}else{
textArea.setText(str);
}
}
};
for(int i=0;ifileItem.length;i++){
fileItem[i].addActionListener(actListener);
fileMenu.add(fileItem[i]);
if(i==2){
fileMenu.addSeparator();
}
}
for(int i=0;iviewItem.length;i++){
viewItem[i].addActionListener(actListener);
viewMenu.add(viewItem[i]);
}
viewMenu.addSeparator();
viewMenu.add(toolMenu);
for(int i=0;itoolItem.length;i++){
toolItem[i].addItemListener(itemListener);
toolMenu.add(toolItem[i]);
}
menuBar.add(fileMenu);
menuBar.add(viewMenu);
setJMenuBar(menuBar);
add(new JScrollPane(textArea));
}
public static void main(String[] args){
//TestMenu frame=
new TestMenu1("DEMO");
//frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
//frame.setSize(300,180);
//frame.setVisible(true);
}
}
("String“)
("pictrue/pic_"+pictureID+"_"+(i*3+j+1)+".jpg");
上面兩個(gè)都是一樣的字符串的意思,只要new ImageIcon("")不報(bào)錯(cuò)就沒(méi)有問(wèn)題,不要去糾結(jié)加不加引號(hào)的問(wèn)題
我看的pic_1_2等都是沒(méi)有后綴的,是否文件名有問(wèn)題,或者在仔細(xì)檢查一下路徑