marți, 5 iunie 2012

PC

public class AMD implements Tehnologie{
     private String nume;
    
     public AMD(String nume)
     {
         this.nume=nume;
     }
     public String getTehnologieName()
     {
         return nume;
     }
   
     public String getTehnologieFeatures()
     {
         return "AMD Features";
     }
}
...........................
import javax.swing.JApplet;
import javax.swing.JFrame;
public class Console {

   
    public static void run(JApplet applet,int lung,int inalt)
    {
        JFrame frame=new JFrame("Abstract Factory");
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        frame.setSize(600,400);
        frame.getContentPane().add(applet);
       
        applet.init();
        applet.start();
       
        frame.setResizable(false);
        frame.setLocationRelativeTo(null);
        frame.setVisible(true);
       
       
    }
}
............................

public class Desktop implements Portabilitate{
   
      private String nume;
     
      public Desktop(String nume)
      {
          this.nume=nume;
      }
     
       public String getPortabilitateName()
       {
           return nume;
       }
       public String getPortabilitateFeatures()
       {
           return "Desktop Features";
          
       }
}
..........................

public class INTEL implements Tehnologie{

    private String nume;
   
    public INTEL(String nume)
    {
        this.nume=nume;
    }
   
    public String getTehnologieName()
    {
        return nume;
    }
      
    public String getTehnologieFeatures()
    {
        return "INTEL features";
    }
}
..............................

public class Laptop implements Portabilitate{

  private String nume;
     
      public Laptop(String nume)
      {
          this.nume=nume;
      }
     
       public String getPortabilitateName()
       {
           return nume;
       }
       public String getPortabilitateFeatures()
       {
           return "Laptop Features";
          
       }
   
}
.........................

public class PC1_Factory extends PCFactory{

    public Portabilitate getPortabilitate()
    {

            return new Desktop("Port_Desktop");
   
   
    }
    public Tehnologie getTehnologie()
    {
            return new AMD("Tehn_AMD");
    }
}
...............................

public class PC2_Factory extends PCFactory {

    public Portabilitate getPortabilitate()
    {
      return new Laptop("Port_Laptop");
    }
    public Tehnologie getTehnologie()
    {

        return new INTEL("Tehn_Intel");
    }
   
   
   
}
...............................

public abstract class PCFactory {

    public static final String Desktop_PC = "Desktop";
    public static final String Laptop_PC = "Laptop";
   
    public static final String AMD_tech = "AMD";
    public static final String INTEL_TEC = "INTEL";
    public static int categ=0;
   
    public abstract Portabilitate getPortabilitate();
    public abstract Tehnologie getTehnologie();
   
    public static PCFactory getPCFactory(String type)
   
    {
        System.out.println("\nType="+type);
       
       
        if (type.equals(PCFactory.Desktop_PC))
            return new PC1_Factory();

        if(type.equals(PCFactory.AMD_tech))
                return new PC1_Factory();
           
       
       
       
       
        if (type.equals(PCFactory.Laptop_PC))
            return new PC2_Factory();
       
        if (type.equals(PCFactory.INTEL_TEC))
                return new  PC2_Factory();
   
   
   
        return new PC1_Factory();
        }
   
   
   
   
}
...............................

public interface Portabilitate {

       public String getPortabilitateName();
       public String getPortabilitateFeatures();
}
........................

public interface Tehnologie {

       public String getTehnologieName();
       public String getTehnologieFeatures();
}
.........................
import javax.swing.*;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;


//aplicatia care foloseste aceste clase implementeaza un sistem
//de cautare PC dupa anumite criterii :categorie si tip

public class Test extends JApplet{

   
    JPanel panel1,panel2,panel3,panel4;
    JComboBox combo1;
    JComboBox combo2;
    JLabel label1,label2,label3;
    JTextField text;
    JButton search,exit;
    Box box;
   
    String searchResult=null;
   
    public void init()
    {
        panel1=new JPanel(new FlowLayout());
        //panel.setBorder(BorderFactory.createEmptyBorder(5,5,5,5));
        panel2=new JPanel(new FlowLayout());
        panel3=new JPanel(new FlowLayout());
        panel4=new JPanel(new FlowLayout());
       
        text=new JTextField(45);
        text.setEditable(false);
        text.setHorizontalAlignment(JTextField.CENTER);
        //text.setBackground(C);
        text.setText("Please click on Search Button");
       
        label1=new JLabel("PC Category ");
        label2=new JLabel("PC Type ");
        label3=new JLabel("Search Result ");
       
        box=Box.createVerticalBox();
       
        Ascultator asc=new Ascultator();
       
       
        combo1=new JComboBox(new String[]{"Desktop","Laptop","AMD","INTEL"});
        combo2=new JComboBox(new String[]{"Portabilitate","Tehnologie"});
       
       
        combo1.addActionListener(asc);
        combo2.addActionListener(asc);
       
       
       
        panel1.add(label1);
        panel1.add(combo1);
        panel2.add(label2);
        panel2.add(combo2);
       
        box.add(panel1);
        box.add(Box.createVerticalStrut(25));
        box.add(panel2);
        box.add(Box.createVerticalStrut(25));
   
        panel3.add(label3);
        panel3.add(text);
       
       
        search=new JButton("Search");
        exit=new JButton("Exit");
       
        search.addActionListener(asc);
        exit.addActionListener(asc);
        panel4.add(search);
        panel4.add(exit);
       
       
       
        getContentPane().add(box,BorderLayout.NORTH);
        getContentPane().add(panel3,BorderLayout.CENTER);
        getContentPane().add(panel4,BorderLayout.SOUTH);
       
       
    }
   
    public class Ascultator implements ActionListener {

        public void actionPerformed(ActionEvent e) {
           
            String s=e.getActionCommand();
            if(s.equals("Exit"))
                 System.exit(0);
            else
                 if(s.endsWith("Search"))
                 {
                     String pcCategory=(String)combo1.getSelectedItem();
                     String pcType=(String)combo2.getSelectedItem();
                   
                     System.out.println("pcCategory: "+pcCategory);
                     System.out.println("pcType: "+pcType);
                   
                     PCFactory factory=PCFactory.getPCFactory(pcCategory);
                   
                     if(pcType.equals("Portabilitate"))
                     {
                        System.out.print("\nAm trecut pe aici\n");
                         searchResult="";
                         Portabilitate p=factory.getPortabilitate();
                       
                         System.out.println("..."+p.getPortabilitateName()+"..");
                         if(p.getPortabilitateName().equals("Port_Desktop")
                                 || p.getPortabilitateName().equals("Port_Laptop"))
                         searchResult="Name: "+p.getPortabilitateName()+" "+p.getPortabilitateFeatures();

                      }
                     else
       
                         if(pcType.equals("Tehnologie"))
                         {
                             searchResult="";
                             Tehnologie tehnologie=factory.getTehnologie();
                           
                             System.out.println("..."+tehnologie.getTehnologieName()+"..");
                             if(tehnologie.getTehnologieName().equals("Tehn_AMD") ||
                                        tehnologie.getTehnologieName().equals("Tehn_Intel"))
                             searchResult="Name: "+tehnologie.getTehnologieName()+""+"  "+tehnologie.getTehnologieFeatures();
   
                           
                         }
                   
                   
                     text.setText(searchResult);
                   
                   
                 }
                   
        }
       

    }
   
   
   
    public static void main(String[] args) {

           Console.run(new Test(),600,400);   
       
       
    }

}

Niciun comentariu:

Trimiteți un comentariu