Kalkulator prosze o pomoc

0

Witam zrobiłem prosty kalkulator ... oto kod :

import javax.swing.;
import java.awt.event.
;
import java.awt.*;

public class Kalk implements ActionListener
{
JTextField t1;
JButton b1;
JButton b2;
JButton b3;
JButton b4;
JButton b5;
JButton b6;
JButton b7;
JButton b8;
JButton b9;
JButton b10;
JButton bplus,brow,bminus,ost,bmnozenie,bdzielenie,bpierwiastek;

double x,buf;

public void actionPerformed(ActionEvent e)
{

  Object target = e.getSource();                           
                                                           
  if(target==b1)                                           
  {                                                        
     t1.setText(t1.getText()+((JButton)target).getText()); 
     t1.requestFocus();                                    
  }  
  
        if(target==b2)                                           
  {                                                        
     t1.setText(t1.getText()+((JButton)target).getText()); 
     t1.requestFocus();                                    
  } 
  
        if(target==b3)                                           
  {                                                        
     t1.setText(t1.getText()+((JButton)target).getText()); 
     t1.requestFocus();                                    
  } 
  
        if(target==b4)                                           
  {                                                        
     t1.setText(t1.getText()+((JButton)target).getText()); 
     t1.requestFocus();                                    
  } 
  
        if(target==b5)                                           
  {                                                        
     t1.setText(t1.getText()+((JButton)target).getText()); 
     t1.requestFocus();                                    
  } 
  
        if(target==b6)                                           
  {                                                        
     t1.setText(t1.getText()+((JButton)target).getText()); 
     t1.requestFocus();                                    
  } 
  
        if(target==b7)                                           
  {                                                        
     t1.setText(t1.getText()+((JButton)target).getText()); 
     t1.requestFocus();                                    
  } 
          
        if(target==b8)                                           
  {                                                        
     t1.setText(t1.getText()+((JButton)target).getText()); 
     t1.requestFocus();                                    
  } 
        if(target==b9)                                           
  {                                                        
     t1.setText(t1.getText()+((JButton)target).getText()); 
     t1.requestFocus();                                    
  } 
        if(target==b10)                                           
  {                                                        
     t1.setText(t1.getText()+((JButton)target).getText()); 
     t1.requestFocus();                                    
  }                                               

//-------------------------------------
// PLUS
else if(target==bplus)
{
buf=Double.parseDouble(t1.getText());
ost=bplus;
t1.setText("");
t1.requestFocus();
}

//--------------------------------------
// MINUS

        else if(target==bminus)                                   
  {                                                        
     buf=Double.parseDouble(t1.getText());
     ost=bminus; 
                     
     t1.setText("");                                          
     t1.requestFocus();                                    
  }
   

//---------------------------------------
// Dzielenie
else if(target==bdzielenie)
{
buf=Double.parseDouble(t1.getText());
ost=bdzielenie;

     t1.setText("");                                          
     t1.requestFocus();    
     	
     	
     	                                
  }                    

//-----------------------------------------
// Mnozenie
else if(target==bmnozenie)
{
buf=Double.parseDouble(t1.getText());
ost=bmnozenie;

     t1.setText("");                                          
     t1.requestFocus();                                    
  } 
  	

//-----------------------------------------
// Pierwiastek
else if(target==bpierwiastek)
{
buf=Double.parseDouble(t1.getText());
ost=bpierwiastek;

     t1.setText("");                                          
     t1.requestFocus();                                    
  }
  	

//------------------------------------------
else if(target==brow||target==t1)
{
x=Double.parseDouble(t1.getText());
if(ost==bplus) x=buf+x;
if(ost==bminus) x=buf-x;
if(ost==bdzielenie) x=buf/x;
if(ost==bmnozenie) x=bufx;
if(ost==bpierwiastek) x=buf/2
x;

     t1.setText(Double.toString(x));                       
     t1.requestFocus();                                    
  }  
                                                 
                                                           
  else if(target==bminus)                                   
  {                                                        
     buf=Double.parseDouble(t1.getText());
     ost=bminus; 
                     
     t1.setText("");                                          
     t1.requestFocus();                                    
  }                                                        
                                           

}

void init()
{
//try
//{
//UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());
//}
//catch(Exception e){}

  JFrame f=new JFrame();                                                    
  Container c=f.getContentPane();                                           
                                                                            
  GridBagLayout gbl=new GridBagLayout();                                    
  GridBagConstraints gbc=new GridBagConstraints();                          
  gbc.fill=GridBagConstraints.HORIZONTAL;                                   
  c.setLayout(gbl);                                                         
                                                                            
                                                                            
                                                                            
  t1=new JTextField(15);                                                    
  t1.addActionListener(this);                                               
  t1.setHorizontalAlignment(JTextField.RIGHT);                              
  gbc.gridx=0;                                                              
  gbc.gridy=0;                                                              
  gbc.gridwidth=5;                                                          
  gbc.ipadx=0;                                                              
  gbc.ipady=5;                                                              
  gbc.insets=new Insets(5,5,0,5);                                           
  gbl.setConstraints(t1,gbc);                                               
  c.add(t1);                                                                
                                                                            

//-------------------------------------------------
// 1

  b1=new JButton("1");                                                      
  b1.addActionListener(this);                                               
  b1.setFocusable(false);                                                   
  gbc.gridx=0;                                                              
  gbc.gridy=1;                                                              
  gbc.gridwidth=1;                                                          
  gbc.ipadx=0;                                                              
  gbc.ipady=0;                                                              
  gbc.insets=new Insets(5,5,0,0);                                           
  gbl.setConstraints(b1,gbc);                                               
  c.add(b1);  

//-------------------------------------------------
// 2

  b2=new JButton("2");                                                      
  b2.addActionListener(this);                                               
  b2.setFocusable(false);                                                   
  gbc.gridx=1;                                                              
  gbc.gridy=1;                                                              
  gbc.gridwidth=1;                                                          
  gbc.ipadx=0;                                                              
  gbc.ipady=0;                                                              
  gbc.insets=new Insets(5,5,0,0);                                           
  gbl.setConstraints(b2,gbc);                                               
  c.add(b2); 

//-------------------------------------------------
// 3

  b3=new JButton("3");                                                      
  b3.addActionListener(this);                                               
  b3.setFocusable(false);                                                   
  gbc.gridx=2;                                                              
  gbc.gridy=1;                                                              
  gbc.gridwidth=1;                                                          
  gbc.ipadx=0;                                                              
  gbc.ipady=0;                                                              
  gbc.insets=new Insets(5,5,0,0);                                           
  gbl.setConstraints(b3,gbc);                                               
  c.add(b3);  

//-------------------------------------------------
// 4

  b4=new JButton("4");                                                      
  b4.addActionListener(this);                                               
  b4.setFocusable(false);                                                   
  gbc.gridx=0;                                                              
  gbc.gridy=2;                                                              
  gbc.gridwidth=1;                                                          
  gbc.ipadx=0;                                                              
  gbc.ipady=0;                                                              
  gbc.insets=new Insets(5,5,0,0);                                           
  gbl.setConstraints(b4,gbc);                                               
  c.add(b4);  
  

//-------------------------------------------------
// 5

  b5=new JButton("5");                                                      
  b5.addActionListener(this);                                               
  b5.setFocusable(false);                                                   
  gbc.gridx=1;                                                              
  gbc.gridy=2;                                                              
  gbc.gridwidth=1;                                                          
  gbc.ipadx=0;                                                              
  gbc.ipady=0;                                                              
  gbc.insets=new Insets(5,5,0,0);                                           
  gbl.setConstraints(b5,gbc);                                               
  c.add(b5);  
  

//-------------------------------------------------
// 6

  b6=new JButton("6");                                                      
  b6.addActionListener(this);                                               
  b6.setFocusable(false);                                                   
  gbc.gridx=2;                                                              
  gbc.gridy=2;                                                              
  gbc.gridwidth=1;                                                          
  gbc.ipadx=0;                                                              
  gbc.ipady=0;                                                              
  gbc.insets=new Insets(5,5,0,0);                                           
  gbl.setConstraints(b6,gbc);                                               
  c.add(b6); 
  

//-------------------------------------------------
// 7

  b7=new JButton("7");                                                      
  b7.addActionListener(this);                                               
  b7.setFocusable(false);                                                   
  gbc.gridx=0;                                                              
  gbc.gridy=3;                                                              
  gbc.gridwidth=1;                                                          
  gbc.ipadx=0;                                                              
  gbc.ipady=0;                                                              
  gbc.insets=new Insets(5,5,0,0);                                           
  gbl.setConstraints(b7,gbc);                                               
  c.add(b7); 
  

//-------------------------------------------------
// 8

  b8=new JButton("8");                                                      
  b8.addActionListener(this);                                               
  b8.setFocusable(false);                                                   
  gbc.gridx=1;                                                              
  gbc.gridy=3;                                                              
  gbc.gridwidth=1;                                                          
  gbc.ipadx=0;                                                              
  gbc.ipady=0;                                                              
  gbc.insets=new Insets(5,5,0,0);                                           
  gbl.setConstraints(b8,gbc);                                               
  c.add(b8); 
  

//-------------------------------------------------
// 9

  b9=new JButton("9");                                                      
  b9.addActionListener(this);                                               
  b9.setFocusable(false);                                                   
  gbc.gridx=2;                                                              
  gbc.gridy=3;                                                              
  gbc.gridwidth=1;                                                          
  gbc.ipadx=0;                                                              
  gbc.ipady=0;                                                              
  gbc.insets=new Insets(5,5,0,0);                                           
  gbl.setConstraints(b9,gbc);                                               
  c.add(b9); 
  

//-------------------------------------------------
// 0

  b10=new JButton("0");                                                      
  b10.addActionListener(this);                                               
  b10.setFocusable(false);                                                   
  gbc.gridx=1;                                                              
  gbc.gridy=4;                                                              
  gbc.gridwidth=1;                                                          
  gbc.ipadx=0;                                                              
  gbc.ipady=0;                                                              
  gbc.insets=new Insets(5,5,0,0);                                           
  gbl.setConstraints(b10,gbc);                                               
  c.add(b10);                                                                               
                                                                            

//-----------------------------------
// + DODAWANIE

  bplus=new JButton("+");                                                   
  bplus.addActionListener(this);                                            
  bplus.setFocusable(false);                                                
  bplus.setToolTipText("dodawanie");                                        
  gbc.gridx=3;                                                              
  gbc.gridy=1;                                                              
  gbc.gridwidth=2;                                                          
  gbc.ipadx=30;                                                             
  gbc.ipady=0;                                                              
  gbc.insets=new Insets(5,5,0,5);                                           
  gbl.setConstraints(bplus,gbc);                                            
  c.add(bplus); 
  

//-----------------------------------------
// - ODEJMOWANIE

  bminus=new JButton("-");                                                   
  bminus.addActionListener(this);                                            
  bminus.setFocusable(false);                                                
  bminus.setToolTipText("odejmowanie");                                        
  gbc.gridx=3;                                                              
  gbc.gridy=2;                                                              
  gbc.gridwidth=2;                                                          
  gbc.ipadx=30;                                                             
  gbc.ipady=0;                                                              
  gbc.insets=new Insets(5,5,0,5);                                           
  gbl.setConstraints(bminus,gbc);                                            
  c.add(bminus);                                                             
                                                                            

//-----------------------------------------
// * MNOŻENIE

  bmnozenie=new JButton("*");                                                   
  bmnozenie.addActionListener(this);                                            
  bmnozenie.setFocusable(false);                                                
  bmnozenie.setToolTipText("mnożenie");                                        
  gbc.gridx=3;                                                              
  gbc.gridy=3;                                                              
  gbc.gridwidth=2;                                                          
  gbc.ipadx=30;                                                             
  gbc.ipady=0;                                                              
  gbc.insets=new Insets(5,5,0,5);                                           
  gbl.setConstraints(bmnozenie,gbc);                                            
  c.add(bmnozenie);   
  	

//-----------------------------------------
// / DZIELENIE

  bdzielenie=new JButton("/");                                                   
  bdzielenie.addActionListener(this);                                            
  bdzielenie.setFocusable(false);                                                
  bdzielenie.setToolTipText("dzielenie");                                        
  gbc.gridx=3;                                                              
  gbc.gridy=4;                                                              
  gbc.gridwidth=2;                                                          
  gbc.ipadx=30;                                                             
  gbc.ipady=0;                                                              
  gbc.insets=new Insets(5,5,0,5);                                           
  gbl.setConstraints(bdzielenie,gbc);                                            
  c.add(bdzielenie); 
  	

//-----------------------------------------
// ^2 POTĘGA

  bpierwiastek=new JButton("^2");                                                   
  bpierwiastek.addActionListener(this);                                            
  bpierwiastek.setFocusable(false);                                                
  bpierwiastek.setToolTipText("pierwiastek");                                        
  gbc.gridx=3;                                                              
  gbc.gridy=5;                                                              
  gbc.gridwidth=2;                                                          
  gbc.ipadx=30;                                                             
  gbc.ipady=0;                                                              
  gbc.insets=new Insets(5,5,0,5);                                           
  gbl.setConstraints(bpierwiastek,gbc);                                            
  c.add(bpierwiastek);                                                          
                                                                            

//--------------------------------------------
// = WYNIK

  brow=new JButton("=");                                                    
  brow.addActionListener(this);                                             
  brow.setFocusable(false);                                                 
  brow.setToolTipText("wykonaj działanie");                                 
  gbc.gridx=0;                                                              
  gbc.gridy=5;                                                              
  gbc.gridwidth=4;                                                          
  gbc.ipadx=30;                                                             
  gbc.ipady=0;                                                              
  gbc.insets=new Insets(5,5,5,0);                                           
  gbl.setConstraints(brow,gbc);                                             
  c.add(brow);                                                              
                                                                            
                                                                            
                                                                            
  f.pack();                                                                 
  f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);                         
  f.setTitle("Kalk");                                                       
  f.setVisible(true);                                                       

}

public static void main(String[] args)
{
//do wersji 1.4
//new Kalk().init();

  //od wersji 1.5                              
     SwingUtilities.invokeLater(new Runnable() 
  {                                            
     public void run()                         
     {                                         
        new Kalk().init();                     
     }                                         
  });                                          

}
}

Problem mam taki że musze tam wstawic jeszcze potęgowanie, pierwiastek kwadratowy, procenty oraz pamięć, a nie wiem jak to zrobić ;/ oraz

Dopracuj swój kalkulator w ten sposób żeby do wyświetlacza nie dawało się wprowadzać dowolnych znaków z klawiatury, a jedynie cyfry wprowadzane za pomocą przycisków interfejsu graficznego lub klawiszy cyfrowych z klawiatury. W tym celu stan pola tekstowego (wyświetlacz) ustaw na nieedytowalne (metoda: setEditable() klasy JTextField). Zdarzenia klawiatury możesz obsłużyć za pomocą interfejsu KeyListener.

pomoze ktos ? z góry dzieki

0

to powinno pomóc
Pamięć robisz wstawiając dane do tablicy(więcej niż jedna) lub do zmiennej(jedna), a procenty to już normalnie wzorami z gimnazjum.

0

a dalbyś rade wstawic to jakoś w kod ? bo ja jestem dopiero początkującym w javie

0

Musisz sobie dać radę sam... kombinuj
Mogę Ci podpowiedzieć jak zrobić niektóre rzeczy..
pierwiastek kwadratowy: Math.sqrt(liczba)
procenty: pierwszaLiczba * 100 / drugaLiczba // wstyd, że tego nie wiedziałeś
pamięć: zrób sobie nową zmienną jako pole obiektu, gdy uzytownik wciska save, zapisuj w niej zawartosc pola tekstowego, gdy uzytkownik wciska read, ustaw ją jako wartosc pola tekstowego

Implementuj sobie KeyListener i dodaj do pola tekstowego...
W metodach z interfejsu KeyListener sprawdzaj jakie klawisze zostały wciśnięte i jeśli to cyferki, dodawaj je do pola tekstowego.

0

Umieść referencje komponentów reprezentujących przyciski cyfrowe oraz operatorów w osobnych tablicach. Unikniesz wtedy przepisywania mnóstwa kodu (szczególnie else-if), zamiast napracować się bez sensu. Będzie to szczególnie przydatne przy listenerach.

0

wszytsko mam juz gotowe oprócz KEY LISTENERA bo nie wiem jak go wsadzic.... proszę jak ktos umie to niech wsadzi w kod ... z góry dzięki za pomoc

1 użytkowników online, w tym zalogowanych: 0, gości: 1