我现在在用Java swing做一个图片管理系统。请问怎样才能根据本机图片的绝对路径把图片显示在jpanel中?
答案:2 悬赏:30 手机版
解决时间 2021-04-03 11:31
- 提问者网友:蔚蓝的太阳
- 2021-04-03 00:37
我现在在用Java swing做一个图片管理系统。请问怎样才能根据本机图片的绝对路径把图片显示在jpanel中?
最佳答案
- 五星知识达人网友:刀戟声无边
- 2021-04-03 01:24
你可以尝试下面两种方法:
获取JPanel的画布,用drawImage方法把图片画在JPanel上
新建个JLabel,用setIcon方法设置JLabel的图片,再添加进JPanel
filechooser可以参考一下这段代码
private void openImage()
{
JFileChooser jfc=new JFileChooser(".");
jfc.setFileSelectionMode(JFileChooser.FILES_ONLY);
FileNameExtensionFilter filter1 = new FileNameExtensionFilter("*.png", "png");
FileNameExtensionFilter filter2 = new FileNameExtensionFilter("*.jpg", "jpg");
FileNameExtensionFilter filter3 = new FileNameExtensionFilter("*.jpeg", "jpeg");
jfc.addChoosableFileFilter(filter1);
jfc.addChoosableFileFilter(filter2);
jfc.addChoosableFileFilter(filter3);
jfc.setAcceptAllFileFilterUsed(false);
jfc.setFileFilter(filter1);
int returnVal = jfc.showOpenDialog(MainFrame.this);
if(returnVal == JFileChooser.APPROVE_OPTION)
{
File file = jfc.getSelectedFile();
try {
image = ImageIO.read(file); //image 是BufferedImage
} catch (IOException e1) {
e1.printStackTrace();
}
jl.setIcon(new ImageIcon(image.getScaledInstance(jl.getWidth(), jl.getHeight(), Image.SCALE_DEFAULT))); //JLabel jl
}
}
获取JPanel的画布,用drawImage方法把图片画在JPanel上
新建个JLabel,用setIcon方法设置JLabel的图片,再添加进JPanel
filechooser可以参考一下这段代码
private void openImage()
{
JFileChooser jfc=new JFileChooser(".");
jfc.setFileSelectionMode(JFileChooser.FILES_ONLY);
FileNameExtensionFilter filter1 = new FileNameExtensionFilter("*.png", "png");
FileNameExtensionFilter filter2 = new FileNameExtensionFilter("*.jpg", "jpg");
FileNameExtensionFilter filter3 = new FileNameExtensionFilter("*.jpeg", "jpeg");
jfc.addChoosableFileFilter(filter1);
jfc.addChoosableFileFilter(filter2);
jfc.addChoosableFileFilter(filter3);
jfc.setAcceptAllFileFilterUsed(false);
jfc.setFileFilter(filter1);
int returnVal = jfc.showOpenDialog(MainFrame.this);
if(returnVal == JFileChooser.APPROVE_OPTION)
{
File file = jfc.getSelectedFile();
try {
image = ImageIO.read(file); //image 是BufferedImage
} catch (IOException e1) {
e1.printStackTrace();
}
jl.setIcon(new ImageIcon(image.getScaledInstance(jl.getWidth(), jl.getHeight(), Image.SCALE_DEFAULT))); //JLabel jl
}
}
全部回答
- 1楼网友:行路难
- 2021-04-03 02:45
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯