Aiuto interfaccia grafica

di il
1 risposte

Aiuto interfaccia grafica

Ciao a tutti, ho creato un programma in Java che mi permette di effettuare la somma, la sottrazione, la divisione e la moltiplicazione di due numeri, ed infine effettuare un reset.
L'ho fatto con l'interfaccia grafica, ma il problema è che non ho proprio capito come spostare i JButton, JTextField, JLabel ecc a mio piacimento.
Infatti mandando in esecuzione il programma, funziona correttamente ma l'interfaccia grafica è completamente "sbagliata", e non come dico io.

Ecco il codice sorgente:

package sommagrafica;
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import java.util.EventObject;

/**
 *
 * @author Francesco
 */
public class Sommagrafica extends JFrame implements ActionListener {

    /**
     * @param args the command line arguments
     */
    JLabel lblPrimo,lblSecondo,lblUguale;
    JTextField txtPrimo,txtSecondo,txtUguale;
    JButton butSomma, butMolt, butSott, butDiv, butReset;
    JPanel panSup,panInf;
    
    public Sommagrafica(){
        txtPrimo=new JTextField(JTextField.LEFT);
        txtSecondo=new JTextField(JTextField.RIGHT);
        txtUguale=new JTextField(JTextField.RIGHT);
       
        lblPrimo=new JLabel("PRIMO NUMERO", JLabel.LEFT);
        lblSecondo=new JLabel("SECONDO NUMERO", JLabel.RIGHT);
        lblUguale=new JLabel("RISULTATO:", JLabel.CENTER);
        lblUguale.setFont(new Font("TimesRoman", Font.BOLD, 18) );
        
        butSomma=new JButton("+");
        butSomma.setFont(new Font("TimesRoman", Font.BOLD, 18));
        butMolt=new JButton("X");
        butMolt.setFont(new Font("TimesRoman", Font.BOLD, 18));
        butReset=new JButton("RESET");
        butReset.setFont(new Font("TimesRoman", Font.BOLD, 18));
        butSott=new JButton("-");
        butSott.setFont(new Font("TimesRoman", Font.BOLD, 18));
        butDiv=new JButton("/");
        butDiv.setFont(new Font("TimesRoman", Font.BOLD, 18));
        
        panSup=new JPanel();
        panInf=new JPanel();
        panSup.setLayout(new GridLayout(1,2));
        panInf.setLayout(new GridLayout(3,4));
        
        setSize(100, 200);
        setLocation(300, 400);
        setLayout(new BorderLayout());
       
        panSup.add(lblPrimo);
        panSup.add(lblSecondo);
        
        panInf.add(txtPrimo);
        panInf.add(lblUguale);
        panInf.add(txtSecondo);
        panInf.add(txtUguale);
        panInf.add(butSomma);
        panInf.add(butMolt);
        panInf.add(butSott);
        panInf.add(butReset);
        panInf.add(butDiv);
       
        butSomma.addActionListener(this);
        butMolt.addActionListener(this);
        butSott.addActionListener(this);
        butReset.addActionListener(this);
        butDiv.addActionListener(this);
        
        add(panSup,BorderLayout.PAGE_START);
        add(panInf, BorderLayout.PAGE_END);
        pack();
        setDefaultCloseOperation(EXIT_ON_CLOSE);
        setVisible(true);
        
        
    }
    
    
    
    public void actionPerformed(ActionEvent e){
       
      if (e.getSource()==butSomma)
      {
           double primo=Double.parseDouble(txtPrimo.getText());
           double secondo=Double.parseDouble(txtSecondo.getText());
           double uguale=primo+secondo;
           txtUguale.setText(""+uguale);
       }
      else if(e.getSource()==butMolt)
       {
           double primo=Double.parseDouble(txtPrimo.getText());
           double secondo=Double.parseDouble(txtSecondo.getText());
           double uguale=primo*secondo;
           txtUguale.setText(""+uguale);
        
       }
      
      else if(e.getSource ()==butSott)
      {
          double primo=Double.parseDouble(txtPrimo.getText());
          double secondo=Double.parseDouble(txtSecondo.getText());
          double uguale=primo-secondo;
          txtUguale.setText(""+uguale);
      }
      
         else if(e.getSource ()==butDiv)
      {
          double primo=Double.parseDouble(txtPrimo.getText());
          double secondo=Double.parseDouble(txtSecondo.getText());
          double uguale=primo/secondo;
          txtUguale.setText(""+uguale);
      }
      
      else
      {
        txtPrimo.setText("");
        txtSecondo.setText("");
        txtUguale.setText("");
    
      }
    }
    
    public static void main(String[] args) {
        // TODO code application logic here
        new Sommagrafica();
    }
    
}
Non voglio utilizzare l'editor grafico incluso in Netbeans ma voglio programmare l'interfaccia grafica "manualmente"...
mi scuso per eventuali errori nello spiegare il problema (sono alle prime armi..) e vi ringrazio anticipatamente.

1 Risposte

  • Re: Aiuto interfaccia grafica

    francesco96 ha scritto:


    Infatti mandando in esecuzione il programma, funziona correttamente ma l'interfaccia grafica è completamente "sbagliata", e non come dico io.
    Sì, l'aspetto grafico lascia molto a desiderare ... ma solamente perché non hai usato il/i layout manager nel modo giusto/sensato.
    Cosa volevi ottenere? Puoi spiegare a parole come ti aspetti che sia la interfaccia grafica? Non solo come disposizione dei componenti ma anche come criteri di ridimensionamento.
Devi accedere o registrarti per scrivere nel forum
1 risposte