java程序中怎么插入图片

java程序中怎么插入图片,第1张

1)文件要有后缀名

2)要用Image或BufferedImage对象

3)因为你重写了paint()方法,所以不能在Label里面显示图片。你重写了paint()方法后,整个容器都会变成画布,所以看不到Label组件,自然也就看不到图片。应该在paint方法里面用g.drawImage方法把图片在画布中画出来。参考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("打开"),new JMenuItem("保存"),new JMenuItem("退出")}

private JMenuItem[] viewItem={new JMenuItem("普通"),new JMenuItem("页面")}

private JCheckBoxMenuItem[] toolItem={new JCheckBoxMenuItem("常用"),new JCheckBoxMenuItem("绘图"),new JCheckBoxMenuItem("符号栏")}

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=0i<toolItem.lengthi++){

if(toolItem[i].isSelected()){

str+=toolItem[i].getText()+"\n"

}

}

if(str.length()==0){

textArea.setText("没有复选")

}else{

textArea.setText(str)

}

}

}

for(int i=0i<fileItem.lengthi++){

fileItem[i].addActionListener(actListener)

fileMenu.add(fileItem[i])

if(i==2){

fileMenu.addSeparator()

}

}

for(int i=0i<viewItem.lengthi++){

viewItem[i].addActionListener(actListener)

viewMenu.add(viewItem[i])

}

viewMenu.addSeparator()

viewMenu.add(toolMenu)

for(int i=0i<toolItem.lengthi++){

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)

}

}

仅仅是给窗口添加背景的话是很简单的,添加上以下语句(自己去添加变量哈):

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也设置成透明就可以了


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/bake/11718127.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-18
下一篇 2023-05-18

发表评论

登录后才能评论

评论列表(0条)

保存