Java
Sir,
My code is attached below..
I want to retrieve the image from database in the same panel in the original size...
But it see in small size...
CAn you help see tha retrive images in right side of the panel with a border
Thanks in advance
import java.awt.*;
import java.awt.event.*;
import java.awt.image.*;
import java.io.ByteArrayInputStream;
import java.io.File;
import java.io.FileDescriptor;
import java.io.FileOutputStream;
import java.io.FileReader;
import java.io.InputStream;
import javax.swing.JTextField;
import java.sql.*;
import javax.imageio.ImageIO;
import javax.swing.ImageIcon;
import javax.swing.JButton;
import javax.swing.JFileChooser;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JTextArea;
public class RetrieveImage implements WindowListener, ActionListener {
File file;
RetrieveImage(){
JFrame f = new JFrame("Image Retrieval");
f.getContentPane().setLayout(null);
final JTextField text = new JTextField("", 20);
JLabel JLabel1 = new JLabel("\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n TEXTURE FEATURES \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n",JLabel.CENTER);
JLabel JLabel4 = new JLabel("Enter Energy ");
final JTextField val1= new JTextField("",30);
JLabel JLabel5 = new JLabel("Enter Entropy ");
final JTextField val4= new JTextField("",30);
JLabel JLabel6 = new JLabel("Enter Contrast ");
final JTextField val5= new JTextField("",30);
JLabel JLabel7 = new JLabel("Enter Homogenity ");
final JTextField val6= new JTextField("",30);
JLabel JLabel8 = new JLabel("Enter Correlation ");
final JTextField val7= new JTextField("",30);
JLabel JLabel2 = new JLabel("\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n COLOR FEATURES \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n ",JLabel.CENTER);
final JTextField val2=new JTextField("",20);
JLabel JLabel3 = new JLabel("\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n SHAPE FEATURES \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n",JLabel.CENTER);
final JTextField val3=new JTextField("",20);
JButton Button1 = new JButton("Browse");
JButton Button2 = new JButton("Search from database");
final JLabel lab=new JLabel();
final JLabel l=new JLabel();
text.setBounds(10,10,120,20);
Button1.setBounds(140,10,100,20);
l.setBounds(250,10,500,400);
JLabel1.setBounds(10,50,200,15);
JLabel4.setBounds(10,90,200,20);
val1.setBounds(90,90,120,20);
JLabel5.setBounds(10,130,200,20);
val4.setBounds(90,130,120,20);
JLabel6.setBounds(10,170,200,20);
val5.setBounds(90,170,120,20);
JLabel7.setBounds(10,210,200,20);
val6.setBounds(90,210,120,20);
JLabel8.setBounds(10,250,200,20);
val7.setBounds(90,250,120,20);
JLabel2.setBounds(10,290,200,15);
val2.setBounds(10,330,120,20);
lab.setBounds(150,330,120,20);
JLabel3.setBounds(10,370,200,15);
val3.setBounds(10,410,120,20);
Button2.setBounds(90,450,200,20);
f.setSize(1000, 500);
f.setBackground(Color.GRAY);
f.add(text);
f.add(Button1);
f.add(l);
f.add(JLabel1);
f.add(JLabel4);
f.add(val1);
f.add(JLabel5);
f.add(val4);
f.add(JLabel6);
f.add(val5);
f.add(JLabel7);
f.add(val6);
f.add(JLabel8);
f.add(val7);
f.add(JLabel2);
f.add(val2);
f.add(JLabel3);
f.add(val3);
f.add(lab);
f.add(Button2);
f.setVisible(true);
Button1.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e){
JFileChooser chooser = new JFileChooser();
chooser.addChoosableFileFilter(new ImageFileFilter());
final int returnVal = chooser.showOpenDialog(null);
if(returnVal == JFileChooser.APPROVE_OPTION) {
file = chooser.getSelectedFile();
String path=file.getPath();
text.setText(path);
l.setIcon(new ImageIcon(path));
}
}
});
Button2.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e){
String feature1 = val1.getText();
String feature4 = val4.getText();
String feature5 = val5.getText();
String feature6 = val6.getText();
String feature7 = val7.getText();
String feature2 = val2.getText();
String feature3 = val3.getText();
try{
Class.forName("com.mysql.jdbc.Driver");
Connection con = null;
String url = "jdbc:mysql://localhost:3306/";
String db = "cbir";
String driver = "com.mysql.jdbc.Driver";
String user = "root";
String pass = "root";
con = DriverManager.getConnection(url+db, user, pass);
File image = new File("D:\\java.gif");
String path1=image.getPath();
String sql = "SELECT image FROM enhancement WHERE Energy like '%"+feature2+"%'";
PreparedStatement stmt = con.prepareStatement(sql);
ResultSet resultSet = stmt.executeQuery();
while (resultSet.next()) {
//String name = resultSet.getString(1);
//String description = resultSet.getString(2);
FileOutputStream fos = new FileOutputStream(image);
byte[] buffer = new byte[1];
InputStream is = resultSet.getBinaryStream(1);
while (is.read(buffer) > 0) {
fos.write(buffer);
}
fos.close();
}
lab.setIcon(new ImageIcon(path1));
}catch(Exception ex){
System.out.println("error :"+ex);
}
}
});
}
public static void main(String args[]) {
RetrieveImage img=new RetrieveImage();
}
public static ImageIcon createImageIcon(String path,String description) {
java.net.URL imgURL = RetrieveImage.class.getResource(path);
if (imgURL != null) {
return new ImageIcon(imgURL, description);
} else {
System.err.println("Couldn't find file: " + path);
return null;
}
}
public void windowOpened(WindowEvent e) {
throw new UnsupportedOperationException("Not supported yet.");
}
public void windowClosing(WindowEvent e) {
throw new UnsupportedOperationException("Not supported yet.");
}
public void windowClosed(WindowEvent e) {
throw new UnsupportedOperationException("Not supported yet.");
}
public void windowIconified(WindowEvent e) {
throw new UnsupportedOperationException("Not supported yet.");
}
public void windowDeiconified(WindowEvent e) {
throw new UnsupportedOperationException("Not supported yet.");
}
public void windowActivated(WindowEvent e) {
throw new UnsupportedOperationException("Not supported yet.");
}
public void windowDeactivated(WindowEvent e) {
throw new UnsupportedOperationException("Not supported yet.");
}
public void actionPerformed(ActionEvent e) {
throw new UnsupportedOperationException("Not supported yet.");
}
}
View Answers
April 9, 2010 at 12:47 PM
Hi Friend,
We have modified the code:
import java.awt.*;
import java.awt.event.*;
import java.awt.image.*;
import java.io.ByteArrayInputStream;
import java.io.File;
import java.io.FileDescriptor;
import java.io.FileReader;
import java.io.InputStream;
import javax.swing.JTextField;
import java.sql.*;
import javax.imageio.ImageIO;
import javax.swing.ImageIcon;
import javax.swing.JButton;
import javax.swing.JFileChooser;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JTextArea;
public class RetrieveImage implements WindowListener, ActionListener {
File file;
int height,width;
RetrieveImage(){
JFrame f = new JFrame("Image Retrieval");
f.getContentPane().setLayout(null);
final JTextField text = new JTextField("", 20);
JLabel JLabel1 = new JLabel("\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n TEXTURE FEATURES \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n",JLabel.CENTER);
JLabel JLabel4 = new JLabel("Enter Energy ");
final JTextField val1= new JTextField("",30);
JLabel JLabel5 = new JLabel("Enter Entropy ");
final JTextField val4= new JTextField("",30);
JLabel JLabel6 = new JLabel("Enter Contrast ");
final JTextField val5= new JTextField("",30);
JLabel JLabel7 = new JLabel("Enter Homogenity ");
final JTextField val6= new JTextField("",30);
JLabel JLabel8 = new JLabel("Enter Correlation ");
final JTextField val7= new JTextField("",30);
JLabel JLabel2 = new JLabel("\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n COLOR FEATURES \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n ",JLabel.CENTER);
final JTextField val2=new JTextField("",20);
JLabel JLabel3 = new JLabel("\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n SHAPE FEATURES \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n",JLabel.CENTER);
final JTextField val3=new JTextField("",20);
JButton Button1 = new JButton("Browse");
JButton Button2 = new JButton("Search from database");
final JLabel lab=new JLabel();
final JLabel l=new JLabel();
text.setBounds(10,10,120,20);
Button1.setBounds(140,10,100,20);
l.setBounds(250,10,100,20);
JLabel1.setBounds(10,50,200,15);
JLabel4.setBounds(10,90,200,20);
val1.setBounds(90,90,120,20);
JLabel5.setBounds(10,130,200,20);
val4.setBounds(90,130,120,20);
JLabel6.setBounds(10,170,200,20);
val5.setBounds(90,170,120,20);
JLabel7.setBounds(10,210,200,20);
val6.setBounds(90,210,120,20);
JLabel8.setBounds(10,250,200,20);
val7.setBounds(90,250,120,20);
JLabel2.setBounds(10,290,200,15);
val2.setBounds(10,330,120,20);
JLabel3.setBounds(10,370,200,15);
val3.setBounds(10,410,120,20);
Button2.setBounds(90,450,200,20);
f.setSize(1024, 768);
f.setBackground(Color.GRAY);
f.add(text);
f.add(Button1);
f.add(l);
f.add(JLabel1);
f.add(JLabel4);
f.add(val1);
f.add(JLabel5);
f.add(val4);
f.add(JLabel6);
f.add(val5);
f.add(JLabel7);
f.add(val6);
f.add(JLabel8);
f.add(val7);
f.add(JLabel2);
f.add(val2);
f.add(JLabel3);
f.add(val3);
f.add(lab);
f.add(Button2);
f.setVisible(true);
Button1.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e){
JFileChooser chooser = new JFileChooser();
chooser.addChoosableFileFilter(new ImageFileFilter());
final int returnVal = chooser.showOpenDialog(null);
if(returnVal == JFileChooser.APPROVE_OPTION) {
file = chooser.getSelectedFile();
String path=file.getPath();
text.setText(path);
l.setIcon(new ImageIcon(path));
}
}
});
April 9, 2010 at 12:47 PM
continue..
Button2.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e){
String feature1 = val1.getText();
String feature4 = val4.getText();
String feature5 = val5.getText();
String feature6 = val6.getText();
String feature7 = val7.getText();
String feature2 = val2.getText();
String feature3 = val3.getText();
try{
Class.forName("com.mysql.jdbc.Driver");
Connection con = null;
String url = "jdbc:
mysql://localhost:3306/";;
String db = "register";
String driver = "com.mysql.jdbc.Driver";
String user = "root";
String pass = "root";
Class.forName(driver).newInstance();
con = DriverManager.getConnection(url+db, user, pass);
Statement st = con.createStatement();
ResultSet rs = st.executeQuery("SELECT image FROM enhancement WHERE Energy like'%"+feature2+"%'");
InputStream sImage;
byte[] bytes=new byte[1024];
if (rs.next()) {
bytes = rs.getBytes("image");
}
if (bytes != null) {
File f=new File("img.jpg");
InputStream in = new ByteArrayInputStream(bytes);
BufferedImage image = ImageIO.read(in);
ImageIO.write(image, "jpg", f);
String path=f.getName();
ImageIcon icon = createImageIcon(path,"");
int h=icon.getIconHeight();
int w=icon.getIconWidth();
System.out.println(h+ " "+w);
lab.setIcon(icon);
height=h;
width=w;
}
}
catch(Exception ex){
System.out.println("error :"+ex);
}
lab.setBounds(400,330,height,width);
}
});
}
public static void main(String args[]) {
RetrieveImage img=new RetrieveImage();
}
protected static ImageIcon createImageIcon(String path,String description) {
java.net.URL imgURL = RetrieveImage.class.getResource(path);
if (imgURL != null) {
return new ImageIcon(imgURL, description);
} else {
System.err.println("Couldn't find file: " + path);
return null;
}
}
public void windowOpened(WindowEvent e) {
throw new UnsupportedOperationException("Not supported yet.");
}
public void windowClosing(WindowEvent e) {
throw new UnsupportedOperationException("Not supported yet.");
}
public void windowClosed(WindowEvent e) {
throw new UnsupportedOperationException("Not supported yet.");
}
public void windowIconified(WindowEvent e) {
throw new UnsupportedOperationException("Not supported yet.");
}
public void windowDeiconified(WindowEvent e) {
throw new UnsupportedOperationException("Not supported yet.");
}
public void windowActivated(WindowEvent e) {
throw new UnsupportedOperationException("Not supported yet.");
}
public void windowDeactivated(WindowEvent e) {
throw new UnsupportedOperationException("Not supported yet.");
}
public void actionPerformed(ActionEvent e) {
throw new UnsupportedOperationException("Not supported yet.");
}
}
Thanks