Differences

This shows you the differences between two versions of the page.

Link to this comparison view

poo:breviare:breviar-10 [2018/11/27 16:54]
matei.teodorescu
poo:breviare:breviar-10 [2020/12/10 13:47] (current)
carmen.odubasteanu
Line 1: Line 1:
 ====== Breviar ====== ====== Breviar ======
-===== Laborator 10 - Interfete =====+===== Laborator 10 - Interfete ​grafice ​=====
  
   * Responsabil:​ [[mihai.nan.cti@gmail.com|Mihai Nan]]   * Responsabil:​ [[mihai.nan.cti@gmail.com|Mihai Nan]]
Line 40: Line 40:
         super(text);​         super(text);​
         setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);​         setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);​
-        setMinimumSize(new Dimension (3 0 02 0 0));+        setMinimumSize(new Dimension (300200));
         getContentPane().setBackground (Color.blue);​         getContentPane().setBackground (Color.blue);​
         setLayout(new SpringLayout());​         setLayout(new SpringLayout());​
Line 79: Line 79:
         super(text);​         super(text);​
         setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);​         setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);​
-        setMinimumSize(new Dimension(3 0 02 0 0));+        setMinimumSize(new Dimension(300200));
         getContentPane().setBackground(Color.blue);​         getContentPane().setBackground(Color.blue);​
         setLayout(new SpringLayout());​         setLayout(new SpringLayout());​
Line 95: Line 95:
    ​@Override    ​@Override
    ​public void actionPerformed(ActionEvent e){    ​public void actionPerformed(ActionEvent e){
-       JButton button = (JButton)e.getSource();​ +    
-       ​if (button.getText().equals("​Apasa"​)){+   /​* ​   
 +    ​JButton button = (JButton)e.getSource();​ 
 +    if (button.getText().equals("​Apasa"​)) ​// valabil daca aveam mai multe butoane ascultate de acest ascultator 
 +    */
        ​System.out.println("​Butonul a fost apasat ! " ) ;        ​System.out.println("​Butonul a fost apasat ! " ) ;
-       } 
    }    }
 } }
Line 110: Line 112:
 <code java> <code java>
  
-c l a s s Text e x t e n d s JFrame implements ​A c ti o n Li s t e n e r +class Text extends ​JFrame implements ​ActionListener
-2 p r i v a t e JButton button ; +    ​private ​JButton button; 
-3 p r i v a t e JTe x tField u s e r +    ​private JTextField user
-4 p r i v a t e JP a s sw o rdField p a s s +    ​private JPasswordField pass
-5 + 
-6 p u bli c Text ( S t ri n g t e x t ) { +    ​public ​Text (String text){ 
-7 supe r t e x t ) ; +        super(text); 
-8 s e t D e f a ul t Cl o s eO p e r a ti o n ( JFrame .EXIT_ON_CLOSE) ; +        ​setDefaultCloseOperation ​(JFrame.EXIT_ON_CLOSE);​ 
-setMinimumSize (new Dimension ( 3 0 0 2 0 0 ) ) ; +        setMinimumSize(new Dimension(300200)); 
-10 getContentPane ( ) . setBackground ( C ol o r bl u e ) ; +        getContentPane().setBackground(Color.blue); 
-11 se tL a y ou t (new FlowLayout ( ) ) ; +        ​setLayout(new FlowLayout());​ 
-12 button = new JButton ( " Apasa " ) ; +        button = new JButton ("​Apasa"​);​ 
-13 button . a d dA c ti o nLi s t e n e r t h i s ) ; +        button.addActionListener(this); 
-14 add ( button ) ; +        add(button);​ 
-15 u s e r = new JTe x tField ​1 5 ) ; +        ​user ​= new JTextField(15); 
-16 add ( u s e r ) ; +        add(user); 
-17 p a s s = new JP a s sw o rdField ​1 5 ) ; +        ​pass ​= new JPasswordField(15); 
-18 add ( p a s s ) ; +        add(pass); 
-19 show ( ) ; +        show(); 
-20 pack ( ) ; +        pack(); 
-21 +    
-22 + 
-23 p u bli c s t a t i c v oid main ( S t ri n g a r g s [ ] ) { +    ​public static void main (String args[]){  
-24 Text b = new Text ( " ​L ab o r a t o r POO" ) ; +        Text b = new Text ("LaboratorPOO"); 
-25 +    
-26 + 
-27 @Override +    @Override 
-28 p u bli c v oid a c ti o nP e r f o rm e d ( ActionEvent e ) { +    ​public void actionPerformed(ActionEvent e){ 
-29 JButton button = ( JButton ) e . g e t S o u r c e ( ) ; +        /​* ​   
-30 i f ( button . ge tTex t ( ) . e q u al s ( " Apasa " ) ) { +        ​JButton button = (JButton)e.getSource(); 
-31 System . out . p r i n t l n u s e r ge tTex t ( )+p a s s ge tTex t ( ) ) ; +        ​if ​(button.getText().equals("​Apasa"​)) ​// valabil daca aveam mai multe butoane ascultate de acest ascultator 
-32 } +       */ 
-33 +        System.out.println(user.getText() + pass.getText()); 
-34 }+    
 +}
  
 </​code>​ </​code>​
Line 157: Line 160:
 Ambele tipuri de componente se creaza similar butoanelor **//​JButton//​**. In general, acestea nu sunt folosite cu evenimente si prin verificari ale starilor acestora (se verifica daca este sau nu select la un anumit eveniment). Verificarea starii unei astfel de componente se face folosind medoda **//​isSelected()//​** care returneaza **//​true//​** daca butonul este bifat si **//​false//​** daca nu este bifat. Ambele tipuri de componente se creaza similar butoanelor **//​JButton//​**. In general, acestea nu sunt folosite cu evenimente si prin verificari ale starilor acestora (se verifica daca este sau nu select la un anumit eveniment). Verificarea starii unei astfel de componente se face folosind medoda **//​isSelected()//​** care returneaza **//​true//​** daca butonul este bifat si **//​false//​** daca nu este bifat.
  
 +<note important>​
 +Pentru o intelegere mai buna, se recomanda analizarea exemplelor propuse in arhiva laboratorului.
 +</​note>​
 +
 +=== JScrollPane ===
 +
 +**//​JScrollPane//​** este o componenta folosita pentru adaugarea de bare de defilare pentru o alta componenta care ar putea depasi dimensiunile containerului in care este adaugata. Instanta **//​JScrollPane//​** nu este folosita in actiunile directe pe care le are componenta pe care o sustine. La construire instantei, i se da o componenta pentru care este creata si pe care adauga bare de defilare (scrollbars). Apoi, instanta **//​JScrollPane//​** este adaugata pe container in locul componentei din instanta **//​JScrollPane//​**.
 +
 +<code java>
 +
 +class Text extends JFrame{
 +    private JTextArea textArea;  ​
 +    private JScrollPane scroll;
 +
 +    public Text (String text){
 +        super(text);​
 +        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);​
 +        setMinimumSize(new Dimension(300,​ 200));
 +        getContentPane().setBackground(Color.blue);​
 +        setLayout(new FlowLayout());​
 +        textArea = new JTextArea(200,​ 100);
 +        textArea.setLineWrap(true);​
 +        textArea.setWrapStyleWord(true);​
 +        textArea.setFont(new Font("​Tahoma",​ 2, 1 2));
 +        scroll = new JScrollPane(textArea);​
 +        add(scroll);​
 +        show();
 +        pack();
 +    }
 +
 +     ​public static void main (String args[]) {
 +        Text b = new Text("​LaboratorPOO"​);​
 +    }
 +}
 +
 +</​code>​
 +
 +=== Etichete === 
 +
 +O eticheta reprezinta cea mai simpla componenta. Aceasta este folosita pentru afisarea unui text static in cele mai multe cazuri. Textul de pe o eticheta poate fi modificat sau preluat folosind metodele **//​getText()//​** si **//​setText(String text)//**.
 +
 +<note warning>
 +Un **//​JLabel//​** poate fi uzitat si pentru afisarea unei imagini. In acest caz, nu i se aplica niciun text, ci doar un **//​imageIcon//​**,​ aceasta modalitate fiind considerata cea mai simpla de a afisa o imagine intr-un container.
 +</​note>​
 +
 +
 +==== Tratarea evenimentelor ====
 +
 +Un eveniment este produs de o actiune a utilizatorului asupra unei componente grafice si reprezinta mecanismul prin care utilizatorul comunica efectiv cu programul. Exemple de evenimente sunt: apasarea unui buton, modificarea textului intr-un control de editare, inchiderea sau redimensionarea unei ferestre, etc. Componentele care genereaza anumite evenimente se mai numesc si surse de evenimente.
  
 +Interceptarea evenimentelor generate de componentele unui program se realizeaza prin intermediul unor clase de tip listener (ascultator,​ consumator de evenimente). In Java, orice obiect poate ”consuma” evenimentele generate de o anumita componenta grafica.
  
 +Avand in vedere gama larga de evenimente existente in limbajul Java, am ales sa vi le prezint pe cele considerate mai important, intr-o serie de exemple incluse in arhiva laboratorului.
poo/breviare/breviar-10.1543330441.txt.gz · Last modified: 2018/11/27 16:54 by matei.teodorescu
CC Attribution-Share Alike 3.0 Unported
www.chimeric.de Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0