In this post i am going to post about using the anditson.com API to search for a movie online and display the results like a gallery as shown above using JAVA.anditson.com provides a good API which actually provides all data associated with a movie in JSON or XML format.I have used the XML format.Here are the codes...
Code to search online:
Thanks....Have your feedback please....
Code to search online:
import javax.xml.parsers.DocumentBuilder; import javax.xml.parsers.DocumentBuilderFactory; import org.w3c.dom.Document; import org.w3c.dom.Element; import org.w3c.dom.NodeList; public class movieDetails { String Year; String TORRENT; String Plot; String Language; String Awards; String Poster; String imdbRating; String tomatoConsensus; String BoxOffice; String Production; String Runtime; String Actors; String Director; String Released; String Rated; String Title; public movieDetails(String movie) { String url = "http://anditson.com/?t="+movie+"&rt=xml&tomatoes=true&imdata=true&trailer=true&torrent=true&stream=true"; try { DocumentBuilderFactory f = DocumentBuilderFactory.newInstance(); DocumentBuilder b = f.newDocumentBuilder(); Document doc = b.parse(url); doc.getDocumentElement().normalize(); // loop through each item NodeList items = doc.getElementsByTagName("movie_data"); Element e = (Element)items.item(0); Title=e.getElementsByTagName("Title").item(0).getChildNodes().item(0).getNodeValue(); Year=e.getElementsByTagName("Year").item(0).getChildNodes().item(0).getNodeValue(); Rated=e.getElementsByTagName("Rated").item(0).getChildNodes().item(0).getNodeValue(); Released=e.getElementsByTagName("Released").item(0).getChildNodes().item(0).getNodeValue(); Director=e.getElementsByTagName("Director").item(0).getChildNodes().item(0).getNodeValue(); Actors=e.getElementsByTagName("Actors").item(0).getChildNodes().item(0).getNodeValue(); Plot=e.getElementsByTagName("Plot").item(0).getChildNodes().item(0).getNodeValue(); Language=e.getElementsByTagName("Language").item(0).getChildNodes().item(0).getNodeValue(); Awards=e.getElementsByTagName("Awards").item(0).getChildNodes().item(0).getNodeValue(); Poster=e.getElementsByTagName("Poster").item(0).getChildNodes().item(0).getNodeValue(); imdbRating=e.getElementsByTagName("imdbRating").item(0).getChildNodes().item(0).getNodeValue(); tomatoConsensus=e.getElementsByTagName("tomatoConsensus").item(0).getChildNodes().item(0).getNodeValue(); BoxOffice=e.getElementsByTagName("BoxOffice").item(0).getChildNodes().item(0).getNodeValue(); Production=e.getElementsByTagName("Production").item(0).getChildNodes().item(0).getNodeValue(); TORRENT=e.getElementsByTagName("TORRENT").item(0).getChildNodes().item(0).getNodeValue(); Runtime=e.getElementsByTagName("Runtime").item(0).getChildNodes().item(0).getNodeValue(); } catch (Exception e) {e.printStackTrace();} } public String getTitle(){return this.Title;} public String getYear(){return this.Year;} public String getedRat(){return this.Rated;} public String getReleased(){return this.Released;} public String getDirector(){return this.Director;} public String getActors(){return this.Actors;} public String getPlot(){return this.Plot;} public String getLanguage(){return this.Language;} public String getAwards(){return this.Awards;} public String getPoster(){return this.Poster;} public String getImdbRating(){return this.imdbRating;} public String getTomatoCons(){return this.tomatoConsensus;} public String getBox(){return this.BoxOffice;} public String getProduction(){return this.Production;} public String getTime(){return this.Runtime;} public String getTorrent(){return this.TORRENT;} }Code for the GUI:
import javafx.scene.effect.*;
import java.awt.Color;
import java.awt.Dimension;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
import java.io.File;
import javafx.application.Platform;
import javafx.embed.swing.JFXPanel;
import javafx.scene.Group;
import javafx.scene.Scene;
import javafx.scene.image.Image;
import javafx.scene.image.ImageView;
import javafx.scene.text.Text;
import javax.swing.JFrame;
import javax.swing.JLabel;
public class newMessageBox
{
static Dimension gh=java.awt.Toolkit.getDefaultToolkit().getScreenSize();
JFrame jFrame = new JFrame();
public newMessageBox(final String movie)
{
jFrame.setLayout(null);
jFrame.setUndecorated(true);
jFrame.setBackground(new Color(Color.white.getRed(), Color.white.getGreen(),Color.white.getBlue(),0));
jFrame.setType(javax.swing.JFrame.Type.UTILITY);
jFrame.setBounds(0,0,gh.width,gh.height);
final JLabel cloesButton = new JLabel("X");
cloesButton.setForeground(Color.white);
cloesButton.setToolTipText("Close");
cloesButton.addMouseListener(new MouseAdapter() {
@Override
public void mouseClicked(MouseEvent arg0) {
jFrame.dispose();
}
@Override
public void mouseEntered(MouseEvent arg0) {
cloesButton.setForeground(Color.red);
}
@Override
public void mouseExited(MouseEvent arg0) {
cloesButton.setForeground(Color.white);
}});
cloesButton.setSize(15,15);
cloesButton.setBounds(jFrame.getWidth()-17, 2, 15,15);
jFrame.getContentPane().add(cloesButton);
final JFXPanel jFXPanel3 = getPanel(0,0,400,300);
jFrame.setVisible(true);
Platform.setImplicitExit(false);
Platform.runLater(new Runnable(){
@Override
public void run() {
movieDetails md= new movieDetails(movie);
fxPanelPath(getPanel(410,5,gh.width-420,25),"C:\\Alberto\\Interface\\Twitter\\ed.jpg","Name :"+md.getTitle());
fxPanelPath(getPanel(410,35,gh.width-420,25),"C:\\Alberto\\Interface\\Twitter\\ed.jpg","Released on :"+md.getReleased());
fxPanelPath(getPanel(410,65,gh.width-420,25),"C:\\Alberto\\Interface\\Twitter\\ed.jpg","Cast :"+md.getActors());
fxPanelPath(getPanel(410,95,gh.width-420,25),"C:\\Alberto\\Interface\\Twitter\\ed.jpg","Directed by :"+md.getDirector());
fxPanelPath(getPanel(410,125,gh.width-420,25),"C:\\Alberto\\Interface\\Twitter\\ed.jpg","Awards :"+md.getAwards());
fxPanelPath(getPanel(410,155,gh.width-420,25),"C:\\Alberto\\Interface\\Twitter\\ed.jpg","Lang :"+md.getLanguage());
fxPanelPath(getPanel(410,185,gh.width-420,25),"C:\\Alberto\\Interface\\Twitter\\ed.jpg","Buesiness :"+md.getBox());
fxPanelPath(getPanel(410,215,gh.width-420,25),"C:\\Alberto\\Interface\\Twitter\\ed.jpg","Rat. :"+md.getedRat());
fxPanelPath(getPanel(410,245,gh.width-420,25),"C:\\Alberto\\Interface\\Twitter\\ed.jpg","Length :"+md.getTime());
fxPanelPath(getPanel(410,275,gh.width-420,25),"C:\\Alberto\\Interface\\Twitter\\ed.jpg","IMDB Rat."+md.getImdbRating());
fxPanelPath(getPanel(10,305,gh.width-20,25),"C:\\Alberto\\Interface\\Twitter\\ed.jpg","House :"+md.getProduction());
fxPanelPath(getPanel(10,335,gh.width-20,25),"C:\\Alberto\\Interface\\Twitter\\ed.jpg","Story"+md.getPlot());
fxPanelPath(getPanel(10,365,gh.width-20,25),"C:\\Alberto\\Interface\\Twitter\\ed.jpg","Plot :"+md.getTomatoCons());
fxPanelPath(getPanel(10,395,gh.width-20,25),"C:\\Alberto\\Interface\\Twitter\\ed.jpg","Torrent :"+md.getTorrent());
fxPanelURL(jFXPanel3,md.getPoster());
}});
}
//****************************************************************************************************************************//
private void fxPanelURL(JFXPanel panel,String path)
{
Image image = new Image(path,400,300,true,true);
DropShadow ds1 = new DropShadow();
ds1.setOffsetY(4.0f);
ds1.setOffsetX(4.0f);
Group root = new Group();
Scene scene = new Scene(root);
final ImageView chart = new ImageView();
chart.setImage(image);
chart.setEffect(ds1);
root.getChildren().add(chart);
scene.setFill(null);
panel.setScene(scene);
}
private void fxPanelPath(JFXPanel panel,String path,String text)
{
File file = new File(path);
Image image = new Image(file.toURI().toString(),gh.width,100,false,true);
DropShadow ds1 = new DropShadow();
ds1.setOffsetY(4.0f);
ds1.setOffsetX(4.0f);
Group root = new Group();
Scene scene = new Scene(root);
final ImageView chart = new ImageView();
chart.setImage(image);
chart.setEffect(ds1);
Text tv=new Text();
tv.setText(text);
tv.setX(chart.getX()+26);
tv.setY(chart.getY()+14);
root.getChildren().add(chart);
root.getChildren().add(tv);
scene.setFill(null);
panel.setScene(scene);
}
private JFXPanel getPanel(int xPos,int yPos,int width,int height)
{
final JFXPanel jFXPanel = new JFXPanel();
jFXPanel.setOpaque(false);
jFXPanel.setBounds(xPos,yPos,width,height);
jFXPanel .addMouseListener(setPos(jFXPanel));
jFXPanel.addMouseMotionListener(setPos(jFXPanel));
jFrame.getContentPane().add(jFXPanel);
return jFXPanel;
}
private MouseAdapter setPos(final JFXPanel comp){
final MouseAdapter mouseListener2 = new MouseAdapter() {
int x, y;
@Override
public void mousePressed(MouseEvent e) {
if (e.getButton() == MouseEvent.BUTTON1) {
x = e.getX();
y = e.getY();
}
}
@Override
public void mouseClicked(MouseEvent e) {
}
@Override
public void mouseDragged(MouseEvent e) {
if ((e.getModifiersEx() & MouseEvent.BUTTON1_DOWN_MASK) != 0) {
comp.setLocation(e.getXOnScreen() - x, e.getYOnScreen() - y);
}
}
};
return mouseListener2;
}
}
Thanks....Have your feedback please....
No comments:
Post a Comment