Jump to content

Ajutor interfata


MariusCDPPI
 Share

Recommended Posts

Salut!

Sunt clasa a 10-a, iar informatica de la scoala mi se pare incredibil de plictisitoare.Am facut un calculator in C++, insa acesta ruleaza in consola.Am cautat pe Google dar nu am gasit nimic; vreau sa stiu doar cum pot face o interfata.Un nume de program, ceva...

 

Edited by FnZ
Link to comment
Share on other sites

Eu cred ca C++ e un limbaj MINUNAT, dar problema lui e ca nu e prea prietenos cu incepatorii.

Daca vrei sa faci o aplicatie care sa foloseasca o interfata DOAR in C++ nu e chiar atat de usor.

Insa, daca insisti neaparat pe C++, exista cateva librarii care fac partea de interfata grafica mult mai usoara (daca esti curios, cauta pe internet lucruri precum Qt (asta mi pare interesant), wxWidgets, Adam & Eve (Adobe Source Library), Microsoft Foundation Class).

In liceu, majoritatea elevilor car vor sa faca chestii legate de interfata se axeaza pe limbaje gen C# sau Java. Eu, dintre cele doua, prefer Java. (Nimic nu bate C++-ul :)) )

 

Uite aici ceva cod in Java. Programul de mai jos doar afiseaza o interfata grafica in care utilizatorul poate introduce doua numere si apasa pe un butonc care va face sa apara un text care reprezinta suma a doua numere.


package swing; // Suntem in pachetul swing

import java.awt.event.*; // avem nevoie de asta pentru a implementa un ActionListener
import javax.swing.*; // si avem nevoie de asta pentru interfata

public class Swing extends JFrame { // clasa noastra principala (Swing) extinde JFrame (o fereastra de baza)

    // Gandeste-te la variabilele de aici ca la variabilele globale din C/C++ ( le poti folosi in orice functie din clasa Swing )
    public JPanel thePanel; // Tot ce apare intr-o fereastra este pozitionat in unul sau mai multe panouri (JPanel)
    public JLabel text1; // O sa avem o eticheta (text) 
    public JLabel text2; // Ca utilizatorul sa stie care ce sa scrie
    public JTextField number1; // Vom folosi asta pe post de INPUT
    public JTextField number2; // La fel
    public JButton Suma; // Acesta va fi un buton pe care sa-l apese utilizatorul
    public JLabel Result; // si acesta va fi alt text in care vom scrie rezultatul
    
    public static void main(String[] args) { // aici incepe programul (echivalent C/C++ - int main())
        
        new Swing(); // Mergem pe functia Swing(); Am folosit new ca sa marchez faptul ca este, de fapt, constructorul clasei
        
    }
    
    public Swing() { // aici este constructorul
        // avand in vedere ca clasa Swing extinde clasa JFrame, this va deveni un JFrame
        // deci, this este o fereastra
        this.setSize(290, 300); // vom avea o fereastra de dimensiuni 290 x 300 (fara un motiv anume, asa mi-a venit)
        this.setTitle("Ceva");  // cu titlul "Ceva"
        this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);    // si atunci cand un utilizator apasa pe X, vom inchide aplicatia
                                                                // Exista perioade cand nu vrei asta
        this.setResizable(false); // nu va fi o fereastra redimensionabila
        this.setLocationRelativeTo(null); // Cea mai simpla explicatie la asta e "Pune totul la mijloc"
        
        thePanel = new JPanel(); // Cream panoul
        
        
        text1 = new JLabel("Primul numar"); // Cream un textul "Primul numar"
        thePanel.add(text1); // si il adaugam in panou
        
        number1 = new JTextField(10); // Cream un textbox care va avea 10 coloane 
                                    // ( gandeste-te la coloane ca la caractere pe care le poti scrie acolo )
        thePanel.add(number1); // si il adaugam in panou
        
        text2 = new JLabel("Al doilea numar"); // Cream un al doilea text "Al doilea numar"
        thePanel.add(text2); // si il adaugam in panou 
        
        number2 = new JTextField(10); // Cream un textbox care va avea 10 coloane
        thePanel.add(number2); // si il adaugam in panou
        
        Suma = new JButton("Suma celor doua numere"); // cream un buton pe care sa scrie "Suma celor doua numere"
        myActionListener al = new myActionListener(); // acesta e un ActionListener care va putea fi apelat de cate ori va fi nevoie
        Suma.addActionListener(al); // aici facem legatura intre ActionListener si buton
        thePanel.add(Suma); // si il adaugam in panou
        
        Result = new JLabel(); // acesta va fi textul final (in care vom scrie rezultatul)
        thePanel.add(Result); // si il adaugam in panou
        
        this.add(thePanel); // la final adaugam panoul ferestrei (this)
        this.setVisible(true); // facem vizibila fereastra
    }
    
    private class myActionListener implements ActionListener { // acesta este ActionListenerul
        //El implementeaza clasa ActionListener
        // va fi apelat de fiecare data cand este facuta o actiune dintr-un obiect care foloseste acest ActionListener
        @Override
        public void actionPerformed(ActionEvent e) { // atunci cand este facut o actiune, aceasta functie este apelata
            if (e.getSource() == Suma) { // verificam daca actiunea provine de la butonul nostru (Suma)
                
                try { // Incercam sa facem suma celor doua numere
                    int firstNumber, secondNumber, total;
                    firstNumber = Integer.parseInt(number1.getText()); // Incercam sa luam prima valoare
                    secondNumber = Integer.parseInt(number2.getText()); // Incercam sa luam a doua valoare
                    // !Nota: Integer.parseInt() poate "arunca" erori pe care noi trebuie sa le prindem in catch
                    total = firstNumber + secondNumber; // Facem operatia
                    Result.setText("Suma celor doua numere este " + total); // Acum scriem in interfata
                    
                } catch(NumberFormatException ex) { // Daca nu am putut converti numerele
                    // inseamna ca nu au fost numere acolo, deci stergem textul
                    Result.setText("");
                }
                
            }
        }
    }
}
 

Daca vrei sa rulezi codul / sa inveti Java, trebuie sa ai instalat JDK (Java Development Kit).

Ca sa te poti apuca direct de codat in ceva asemanator Code::Blocks, descarca de aici NetBeans si JDK 8, iar aici ai tutoriale.

Sper ca ti-am fost de ajutor.

Edited by Cdorsu
Link to comment
Share on other sites

18 hours ago, Cdorsu said:

Eu cred ca C++ e un limbaj MINUNAT, dar problema lui e ca nu e prea prietenos cu incepatorii.

Daca vrei sa faci o aplicatie care sa foloseasca o interfata DOAR in C++ nu e chiar atat de usor.

Insa, daca insisti neaparat pe C++, exista cateva librarii care fac partea de interfata grafica mult mai usoara (daca esti curios, cauta pe internet lucruri precum Qt (asta mi pare interesant), wxWidgets, Adam & Eve (Adobe Source Library), Microsoft Foundation Class).

In liceu, majoritatea elevilor car vor sa faca chestii legate de interfata se axeaza pe limbaje gen C# sau Java. Eu, dintre cele doua, prefer Java. (Nimic nu bate C++-ul :)) )

  Reveal hidden contents

Uite aici ceva cod in Java. Programul de mai jos doar afiseaza o interfata grafica in care utilizatorul poate introduce doua numere si apasa pe un butonc care va face sa apara un text care reprezinta suma a doua numere.



package swing; // Suntem in pachetul swing

import java.awt.event.*; // avem nevoie de asta pentru a implementa un ActionListener
import javax.swing.*; // si avem nevoie de asta pentru interfata

public class Swing extends JFrame { // clasa noastra principala (Swing) extinde JFrame (o fereastra de baza)

    // Gandeste-te la variabilele de aici ca la variabilele globale din C/C++ ( le poti folosi in orice functie din clasa Swing )
    public JPanel thePanel; // Tot ce apare intr-o fereastra este pozitionat in unul sau mai multe panouri (JPanel)
    public JLabel text1; // O sa avem o eticheta (text) 
    public JLabel text2; // Ca utilizatorul sa stie care ce sa scrie
    public JTextField number1; // Vom folosi asta pe post de INPUT
    public JTextField number2; // La fel
    public JButton Suma; // Acesta va fi un buton pe care sa-l apese utilizatorul
    public JLabel Result; // si acesta va fi alt text in care vom scrie rezultatul
    
    public static void main(String[] args) { // aici incepe programul (echivalent C/C++ - int main())
        
        new Swing(); // Mergem pe functia Swing(); Am folosit new ca sa marchez faptul ca este, de fapt, constructorul clasei
        
    }
    
    public Swing() { // aici este constructorul
        // avand in vedere ca clasa Swing extinde clasa JFrame, this va deveni un JFrame
        // deci, this este o fereastra
        this.setSize(290, 300); // vom avea o fereastra de dimensiuni 290 x 300 (fara un motiv anume, asa mi-a venit)
        this.setTitle("Ceva");  // cu titlul "Ceva"
        this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);    // si atunci cand un utilizator apasa pe X, vom inchide aplicatia
                                                                // Exista perioade cand nu vrei asta
        this.setResizable(false); // nu va fi o fereastra redimensionabila
        this.setLocationRelativeTo(null); // Cea mai simpla explicatie la asta e "Pune totul la mijloc"
        
        thePanel = new JPanel(); // Cream panoul
        
        
        text1 = new JLabel("Primul numar"); // Cream un textul "Primul numar"
        thePanel.add(text1); // si il adaugam in panou
        
        number1 = new JTextField(10); // Cream un textbox care va avea 10 coloane 
                                    // ( gandeste-te la coloane ca la caractere pe care le poti scrie acolo )
        thePanel.add(number1); // si il adaugam in panou
        
        text2 = new JLabel("Al doilea numar"); // Cream un al doilea text "Al doilea numar"
        thePanel.add(text2); // si il adaugam in panou 
        
        number2 = new JTextField(10); // Cream un textbox care va avea 10 coloane
        thePanel.add(number2); // si il adaugam in panou
        
        Suma = new JButton("Suma celor doua numere"); // cream un buton pe care sa scrie "Suma celor doua numere"
        myActionListener al = new myActionListener(); // acesta e un ActionListener care va putea fi apelat de cate ori va fi nevoie
        Suma.addActionListener(al); // aici facem legatura intre ActionListener si buton
        thePanel.add(Suma); // si il adaugam in panou
        
        Result = new JLabel(); // acesta va fi textul final (in care vom scrie rezultatul)
        thePanel.add(Result); // si il adaugam in panou
        
        this.add(thePanel); // la final adaugam panoul ferestrei (this)
        this.setVisible(true); // facem vizibila fereastra
    }
    
    private class myActionListener implements ActionListener { // acesta este ActionListenerul
        //El implementeaza clasa ActionListener
        // va fi apelat de fiecare data cand este facuta o actiune dintr-un obiect care foloseste acest ActionListener
        @Override
        public void actionPerformed(ActionEvent e) { // atunci cand este facut o actiune, aceasta functie este apelata
            if (e.getSource() == Suma) { // verificam daca actiunea provine de la butonul nostru (Suma)
                
                try { // Incercam sa facem suma celor doua numere
                    int firstNumber, secondNumber, total;
                    firstNumber = Integer.parseInt(number1.getText()); // Incercam sa luam prima valoare
                    secondNumber = Integer.parseInt(number2.getText()); // Incercam sa luam a doua valoare
                    // !Nota: Integer.parseInt() poate "arunca" erori pe care noi trebuie sa le prindem in catch
                    total = firstNumber + secondNumber; // Facem operatia
                    Result.setText("Suma celor doua numere este " + total); // Acum scriem in interfata
                    
                } catch(NumberFormatException ex) { // Daca nu am putut converti numerele
                    // inseamna ca nu au fost numere acolo, deci stergem textul
                    Result.setText("");
                }
                
            }
        }
    }
}
  Reveal hidden contents

Daca vrei sa rulezi codul / sa inveti Java, trebuie sa ai instalat JDK (Java Development Kit).

Ca sa te poti apuca direct de codat in ceva asemanator Code::Blocks, descarca de aici NetBeans si JDK 8, iar aici ai tutoriale.

Sper ca ti-am fost de ajutor.

Mersi mult :)

Si greu nu e deloc.Nu vad ce e asa greu in a scrie niste chestii.Mai dificil e sa-ti dai seama cum sa le scrii, dar daca te duce capu' o faci si pe asta.

Se poate da T/C.

Link to comment
Share on other sites

On 5/19/2017 at 0:02 PM, se7en said:

Se poate da T/C.

 

O sa mai las topicul deschis, poate mai adauga cineva ceva.

Edited by Cdorsu
Link to comment
Share on other sites

Poti face interfata, gen un 'cadran' pentru calculator folosind cout<< "----------------------------------------------------", gen liniile sau sa dai cout<< (char)198 , unde 198 este un exemplu de caracter din codul ASCII, acolo ai bara, colt, linie ca sa 'desenezi' in consola.

Link to comment
Share on other sites

  • FnZ locked this topic
Guest
This topic is now closed to further replies.
 Share

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.