添加 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
}
}
import java.awt.*import java.awt.event.*
import java.io.*
import javax.swing.*
public class ImageViewer
{
public static void main(String[] args)
{
JFrame frame = new ImageViewerFrame()
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE)
frame.show()
}
}
class ImageViewerFrame extends JFrame
{
public ImageViewerFrame()
{
setTitle("ImageViewer")
setSize(DEFAULT_WIDTH, DEFAULT_HEIGHT)
label = new JLabel()
Container contentPane = getContentPane()
contentPane.add(label)
chooser = new JFileChooser()
chooser.setCurrentDirectory(new File("."))
JMenuBar menuBar = new JMenuBar()
setJMenuBar(menuBar)
JMenu menu = new JMenu("File")
menuBar.add(menu)
JMenuItem openItem = new JMenuItem("Open")
menu.add(openItem)
openItem.addActionListener(new
ActionListener()
{
public void actionPerformed(ActionEvent evt)
{
int r = chooser.showOpenDialog(null)
if(r == JFileChooser.APPROVE_OPTION)
{
String name
= chooser.getSelectedFile().getPath()
label.setIcon(new ImageIcon(name))
}
}
})
JMenuItem exitItem = new JMenuItem("Exit")
menu.add(exitItem)
exitItem.addActionListener(new
ActionListener()
{
public void actionPerformed(ActionEvent event)
{
System.exit(0)
}
})
}
private JLabel label
private JFileChooser chooser
private static final int DEFAULT_WIDTH = 300
private static final int DEFAULT_HEIGHT = 400
}
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)