import java.awt.*;
import javax.swing.*;
import java.awt.event.*;
public class Kalkulator2 {
private static JLabel tekst = new JLabel("0");
private static int knappStr = 140;
private static String forrigeTall = "";
private static String operasjon = "+";
public static void main(String[] args) {
JFrame vindu = new JFrame("Kalkulator");
vindu.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
vindu.setResizable(false);
JPanel panel = new JPanel();
panel.setLayout(new BoxLayout(panel, BoxLayout.Y_AXIS));
vindu.add(panel);
panel.add(tekst);
tekst.setPreferredSize(new Dimension(500, 100));
tekst.setForeground(Color.BLACK);
tekst.setOpaque(true);
tekst.setFont(new Font("times new roman", Font.ITALIC,40));
tekst.setAlignmentX(Component.CENTER_ALIGNMENT);
tekst.setPreferredSize(new Dimension(knappStr*3, knappStr));
JPanel knapper = new JPanel();
panel.add(knapper);
knapper.setLayout(new GridLayout(5,3));
lagTallKnapper(knapper);
lagOperasjonsKnapper(knapper);
vindu.pack();
vindu.setVisible(true);
}
public static void lagTallKnapper(JPanel knapper){
class TallKnapp extends JButton {
public TallKnapp(String tall){
super(tall);
setPreferredSize(new Dimension(knappStr,knappStr));
setFont(new Font("times new roman" ,Font.CENTER_BASELINE, 40));
addActionListener(new TallAction());
}
class TallAction implements ActionListener {
@Override
public void actionPerformed(ActionEvent e){
String tekstKnapp = getText();
tekst.setText(tekstKnapp);
}
}
}
int teller = 1;
for(int i = 0; i < 3; i++){
for(int j = 0; j < 3; j++){
knapper.add(new TallKnapp(""+teller++));
}
}
knapper.add(new TallKnapp("0"));
}
public static void lagOperasjonsKnapper(JPanel knapper){
class OperasjonsKnapp extends JButton {
public OperasjonsKnapp(String operasjon){
super(operasjon);
if (operasjon.equals("=")){
setBackground(Color.RED);
} else {
setBackground(Color.ORANGE);
}
setForeground(Color.BLACK);
setPreferredSize(new Dimension(knappStr,knappStr));
setFont(new Font("times new roman" ,Font.BOLD, 40));
addActionListener(new OperasjonAction());
}
class OperasjonAction implements ActionListener {
@Override
public void actionPerformed(ActionEvent e){
if(getText().equals("=")){
if(forrigeTall.equals("")) return;
Double tall1 = 0.0, tall2 = 0.0;
try{
tall1 = Double.parseDouble(forrigeTall);
tall2 = Double.parseDouble(tekst.getText());
}catch(Exception exception){
return;
}
Double resultat = 0.0;
if(operasjon.equals("+")){
resultat = tall1 + tall2;
}else if(operasjon.equals("-")){
resultat = tall1 - tall2;
}else if(operasjon.equals("/")){
resultat = tall1 / tall2;
}else if(operasjon.equals("*")){
resultat = tall1 * tall2;
}
forrigeTall = "";
tekst.setText(Double.toString(resultat));
}else{
System.out.println("lol");
operasjon = getText();
forrigeTall = tekst.getText();
tekst.setText("0");
}
}
}
}
knapper.add(new OperasjonsKnapp("+"));
knapper.add(new OperasjonsKnapp("-"));
knapper.add(new OperasjonsKnapp("="));
knapper.add(new OperasjonsKnapp("*"));
knapper.add(new OperasjonsKnapp("/"));
}
}