求助怎么调用ImagePanel让本地图片显示在panel里

qq_37129214 2017-02-08 05:10:55


请教大神,怎么实现按查询按钮,然后相应地址下的图片利用ImagePanel把图片画在panel里。



import java.awt.BorderLayout;
import java.awt.Container;
import java.awt.FlowLayout;
import java.awt.GridBagLayout;
import java.awt.GridLayout;
import java.awt.Panel;
import java.awt.event.*;
import java.io.*;
import java.sql.ResultSet;

import javax.swing.*;


public class ImageViewerServer extends JFrame{

JLabel l_id = new JLabel("编号:");
JLabel l_name = new JLabel("名称:");
JLabel l_filePath = new JLabel("路径:");
JLabel l_size = new JLabel("大小:");
JLabel l_type = new JLabel("种类:");
JLabel l_time = new JLabel("时间:");


JTextField id = new JTextField(10);
JTextField name = new JTextField(10);
JTextField filePath = new JTextField(10);
JTextField size = new JTextField(10);
JTextField type = new JTextField(10);
JTextField time = new JTextField(10);


JButton b_query = new JButton("查询");
JButton b_del = new JButton("删除");
JButton b_update = new JButton("更新");
JButton b_add = new JButton("增加");
JButton b_before = new JButton("上一个");
JButton b_next = new JButton("下一个");
JButton b_select = new JButton("选择目录");

ResultSet rst = null;


private ImagePanel mv;
//private ImageViewer1 outer=this;
public ImageViewerServer() {
super("Image Viewer 1.1");

mv = new ImagePanel();
Panel p1 = new Panel();
Panel p2 = new Panel();

p1.add(l_id);
p1.add(id);
p1.add(l_name);
p1.add(name);
p1.add(l_filePath);
p1.add(filePath);
p1.add(l_size);
p1.add(size);
p1.add(l_type);
p1.add(type);
p1.add(l_time);
p1.add(time);
p2.add(b_select);
p2.add(b_query);
p2.add(b_del);
p2.add(b_update);
p2.add(b_add);
p2.add(b_before);
p2.add(b_next);




add(mv,BorderLayout.CENTER);
add(p1,BorderLayout.NORTH);
add(p2,BorderLayout.SOUTH);

//setLayout(new FlowLayout(FlowLayout.CENTER));

b_query.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e) {
if(e.getSource()==b_query) {

try {
rst = SqlDB.execQuery("select * from inf where id='"+id.getText().trim()+"'");
if(rst.next()) {
name.setText(rst.getString(2));
filePath.setText(rst.getString(3));
size.setText(rst.getString(4));
type.setText(rst.getString(5));
time.setText(rst.getString(6));
System.out.println("已查询");
}

} catch(Exception ex) {
System.out.println(ex.getMessage());
}
}

}

});

b_add.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e) {
if(e.getSource()==b_add) {
try {
SqlDB.execUpdate("insert into inf values('"+
id.getText().trim()+"','"+
name.getText().trim()+"','"+
filePath.getText().trim()+"','"+
size.getText().trim()+"','"+
type.getText().trim()+"','"+
time.getText().trim()+"')");
System.out.println("insert into inf values('"+
id.getText().trim()+"','"+
name.getText().trim()+"','"+
filePath.getText().trim()+"','"+
size.getText().trim()+"','"+
type.getText().trim()+"','"+
time.getText().trim()+"')");
} catch(Exception ex) {
System.out.println(ex.getMessage());
}
}
}

});


b_update.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e) {
if(e.getSource()==b_update) {
try {
SqlDB.execUpdate("update inf set name='" +
name.getText().trim()+
"' where id='" +id.getText().trim()+"'");
System.out.println("已更新");
} catch(Exception ex) {
System.out.println(ex.getMessage());
}

}
}

});

b_del.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e) {
if(e.getSource()==b_del) {
SqlDB.execUpdate("delete from inf" +
" where id='"+id.getText().trim()+"'");
String fileName = "D:/temp/"+GetDate.getDate()+"_SJ"+id.getText().trim()+".jpg";
System.out.println("D:/temp/"+GetDate.getDate()+"_SJ"+id.getText().trim()+".jpg");
System.out.println(id.getText().trim());
File file = new File(fileName );
file.delete();
System.out.println("已删除");
}
}

});


b_next.addActionListener(new ActionListener(){
@Override
public void actionPerformed(ActionEvent e) {
if(e.getSource()==b_next) {
b_next.addActionListener(new ActionListener(){
@Override
public void actionPerformed(ActionEvent e) {
// TODO Auto-generated method stub

mv.setCurrent(mv.getCurrent()-1);
mv.repaint();
}
});
try {
rst = SqlDB.execQuery("select * from inf where id='"+ (Integer.parseInt(id.getText().trim())+1)+"'");
System.out.println("select * from inf where id='"+ (Integer.parseInt(id.getText().trim())+1)+"'");
if(rst.next()) {
id.setText(rst.getString(1));
name.setText(rst.getString(2));
filePath.setText(rst.getString(3));
size.setText(rst.getString(4));
type.setText(rst.getString(5));
time.setText(rst.getString(6));
System.out.println("下一条");
}
} catch(Exception ex) {
System.out.println(ex.getMessage());
}finally {
SqlDB.closeDB();
}
}
}
});

b_before.addActionListener(new ActionListener(){
@Override
public void actionPerformed(ActionEvent e) {
if(e.getSource()==b_before) {
b_before.addActionListener(new ActionListener(){
@Override
public void actionPerformed(ActionEvent e) {
// TODO Auto-generated method stub
mv.setCurrent(mv.getCurrent()+1);
mv.repaint();
}
});
try {
rst = SqlDB.execQuery("select * from inf where id='"+ (Integer.parseInt(id.getText().trim())-1)+"'");
System.out.println("select * from inf where id='"+ (Integer.parseInt(id.getText().trim())-1)+"'");
if(rst.next()) {
id.setText(rst.getString(1));
name.setText(rst.getString(2));
filePath.setText(rst.getString(3));
size.setText(rst.getString(4));
type.setText(rst.getString(5));
time.setText(rst.getString(6));
System.out.println("上一条");
}
} catch(Exception ex) {
System.out.println(ex.getMessage());
}finally {
SqlDB.closeDB();
}
}
}
});

b_select.addActionListener(new ActionListener(){
@Override
public void actionPerformed(ActionEvent e) {
// TODO Auto-generated method stub
JFileChooser fileChooser = new JFileChooser();
fileChooser.setFileSelectionMode(JFileChooser.FILES_AND_DIRECTORIES);
int returnValue = fileChooser.showOpenDialog(null);
File selectedFile=null;

if(returnValue==JFileChooser.APPROVE_OPTION) {
selectedFile=fileChooser.getSelectedFile();
}

if(selectedFile.isDirectory()){
mv.changDir(selectedFile);
} else {
File parentdir=selectedFile.getParentFile();
mv.changDir(parentdir,selectedFile);
}


}
});

}






public static void main(String[] args) {
ImageViewerServer myapp = new ImageViewerServer();
myapp.setSize(1000,600);
myapp.setVisible(true);
myapp.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

}
}
...全文
433 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
baidu_34630879 2017-02-09
  • 打赏
  • 举报
回复

                                      
					ImageIcon imageIcon = new ImageIcon("c:\\123.jpg");
					imageLabel.setIcon(imageIcon);// 设置图片到GUI上
					

qq_37129214 2017-02-08
  • 打赏
  • 举报
回复
qq_37129214 2017-02-08
  • 打赏
  • 举报
回复
代码选中就能看清了。请教各位大神,怎么实现按查询按钮,然后相应地址下的图片利用ImagePanel把图片画在panel里。
qq_37129214 2017-02-08
  • 打赏
  • 举报
回复
import java.awt.Graphics;
import java.awt.Image;
import java.awt.Toolkit;
import java.io.File;
import javax.swing.JPanel;


@SuppressWarnings("serial")
public class ImagePanel extends JPanel {
	
	private Image img;
	private String imageFiles[];
	private int current=0;
	private int counts=0;
	private File imageDir=null;
	Toolkit mytool = Toolkit.getDefaultToolkit();
	
	public ImagePanel() {
		imageDir = new File(".");
		changDir(imageDir);
	}
	
	public void changDir(File imageDir) {
		current=0;
		counts=0;
		this.imageDir=imageDir;
		String[] filenames=imageDir.list();
		for(int i=0;i<filenames.length;i++) {
			if(  filenames[i].toLowerCase().endsWith(".jpg")||filenames[i].toLowerCase().endsWith(".jpg")
			   ||filenames[i].toLowerCase().endsWith(".jpeg")||filenames[i].toLowerCase().endsWith(".tiff")
			   ||filenames[i].toLowerCase().endsWith(".png")||filenames[i].toLowerCase().endsWith(".tif"))
				counts++;
			else
				filenames[i]=null;
		}
		imageFiles=new String[counts];
		for(int i=0,j=0;i<filenames.length;i++) {
			if(filenames[i]!=null) {
				imageFiles[j]=imageDir.getAbsolutePath()+"\\"+filenames[i];
				j++;
			}
		}
		repaint();
	}

	public void changDir(File imageDir, File selectedFile) {
		this.imageDir=imageDir;
		counts=0;
		current=0;
		String[] filenames = imageDir.list();
		String selectedfilename = selectedFile.getName();
		for(int i=0;i<filenames.length;i++) {
			if(  filenames[i].toLowerCase().endsWith(".jpg")||filenames[i].toLowerCase().endsWith(".jpg")
			   ||filenames[i].toLowerCase().endsWith(".jpeg")||filenames[i].toLowerCase().endsWith(".tiff")
			   ||filenames[i].toLowerCase().endsWith(".png")||filenames[i].toLowerCase().endsWith(".tif")) {
				counts++;
				if(filenames[i].equals(selectedfilename)) current=counts;
			}
			else {
				filenames[i]=null;
			}
		}
		System.out.println(filenames+","+filenames.length);
		System.out.println("counts="+counts);
		System.out.println(imageDir);
		imageFiles=new String[counts];
		for(int i=0,j=0;i<filenames.length;i++) {
			if(filenames[i]!=null) {
				imageFiles[j]=imageDir.getAbsolutePath()+"\\"+filenames[i];
				j++;
			}
		}
		repaint();
	}

	public void paintComponent(Graphics g) {
		super.paintComponent(g);
		if(counts==0) {
			g.drawString("no image file", 20,20);
		}
		else {
			img=mytool.getImage(imageFiles[current]);
			g.drawImage(img,0,0,getSize().width,getSize().height,this);
		}
			
	}

	
	public int getCurrent() {
		return current;
	}
	
	public void setCurrent(int a) {
		if(a>=0&&a<counts) current = a;
		else if(a<0) current=0;
		else current=counts-1;
	}
	public String getCurrentPath(){
		return imageFiles[current];
	}

}

62,614

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧