java初学者 求教怎么在窗口中添加一张图片

java初学者 求教怎么在窗口中添加一张图片,第1张

//注意:

//当前目录下要有一个p.jpg文件

//压缩这个文件使它的大小尽量小,最好只有几十KB

//否则无法显示背景图片

package java525

import java.awt.*

import java.awt.event.*

import javax.swing.*

public class MainWindow extends JFrame implements ActionListener {

JMenuBar menuBar//菜单条

JMenu menu1, menu2, menu3, menu4//菜单

JMenuItem m11, m12, m13//菜单项

JMenuItem m21, m22, m23

JMenuItem m31, m32, m33

JMenuItem m41, m42

Image pic

public static void main(String[] args) {

new MainWindow()

}

public MainWindow() {

pic=Toolkit.getDefaultToolkit().getImage("p.jpg")

MediaTracker t=new MediaTracker(this)

t.addImage(pic,1)

try

{

t.waitForID(1)

}

catch(Exception e)

{

}

//createMenu()

setTitle("学生管理系统")//设置窗口标题

setIconImage((new ImageIcon("icon.gif")).getImage())//设置图标

setSize(600, 400)//设置窗口大小

Dimension size = Toolkit.getDefaultToolkit().getScreenSize()//取屏幕大小

setLocation((size.width - getWidth()) / 2, (size.height - getHeight()) / 2)

setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE)//设置关闭行为

setVisible(true)//使窗口可见

//this.setExtendedState(JFrame.MAXIMIZED_BOTH)

}

public void actionPerformed(ActionEvent e) {

}

public void paint(Graphics g) {

super.paint(g)

g.drawImage(pic,0,0,null)

}

}

可以新建个面板,在面板里放入带图片的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)

你可以用Jlabel或者或者AbstractButton的子类来达到这个目的.下面给你一点用Jlabel的代码 JLabel label = new JLabel()

label.setIcon(new ImageIcon("图片路径"))这样就可以了,AbstractButton的方法也是一样的,,都是setIcon如果要把图片放在中间,那么用下面的代码: label.setHorizontalAlignment(SwingUtilities.CENTER)

label.setVerticalAlignment(SwingUtilities.CENTER)这样,图片就在中间了.上面的代码,第一行是设置label的水平对齐为剧中,第二行是设置垂直对齐为剧中. 还有一种方法是就是继承JComponent类重写paint方法,自己绘制图片,但是这种方法对你的需求来说,是完全没必要的. 关于图片相关的信息,你可以用 Toolkit.getDefaultToolkit().getImage("图片路径")来创建一张只读图片,要注意的是,这种方式获得的图片是不可修改的,如果要获得可以修改的图片,你可以用ImageIO类来创建BufferedImage. 希望这些信息可以帮到你.


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

原文地址: http://outofmemory.cn/bake/11176834.html

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

发表评论

登录后才能评论

评论列表(0条)

保存