Simple calculator implemented with lambdas
Don't use String labels of GUI elements in flow control

It's not good to use the String labels of GUI elements to make decisions.
It would be slightly better if you made "Sum", "Difference", ... global constants, but only slightly.

An enum would be better for this purpose:

enum Operation {
    Sum("Sum", (x, y) -&gt; x + y),
    Difference("Difference", (x, y) -&gt; x - y),
    Product("Product", (x, y) -&gt; x * y),
    Quotient("Quotient", (x, y) -&gt; x / y),
    Exponent("Exponent", Math::pow)
    ;

    private final String label;
    private final Equation equation;

    private Operation(String label, Equation equation) {
        this.label = label;
        this.equation = equation;
    }

    @Override
    public String toString() {
        return label;
    }
}


With this, you could create the JComboBox with Operation items instead of String:

    JComboBox&lt;Operation&gt; calculate = new JComboBox&lt;&gt;();

    calculate.addItem(Operation.Sum);
    calculate.addItem(Operation.Difference);
    calculate.addItem(Operation.Product);
    calculate.addItem(Operation.Quotient);
    calculate.addItem(Operation.Exponent);


Change the call to calculate to this:

    calculate(
            ((Operation) calculate.getSelectedItem()).equation,
            Double.parseDouble(first.getText()),
            Double.parseDouble(second.getText())
    ),


And simplify calculate itself to this:

public static double calculate(Equation operation, double val1, double val2) {
    return operation.compute(val1, val2);
}


Avoid pointless evaluations

In calculate, you declare all the equation types at the top but only use one of them.
This is pointless and wasteful.

Simplify lambdas with method references

These lambdas can be replaced with method references:


    SwingUtilities.invokeLater(() -&gt; new EquationCalculator());
    // ...
    Equation exponentiate = (alpha, beta) -&gt; Math.pow(alpha, beta);



Like this:

    SwingUtilities.invokeLater(EquationCalculator::new);
    // ...
    Equation exponentiate = Math::pow;


Pointless to print stack trace in main

If an exception is thrown in main,
a stack trace will be printed on the console.
There's no need to catch an exception and do the same manually.

Also beware,
it's not a good practice to catch Exception.
It's recommended to catch specific exceptions,
both to signal to readers the things that can possibly go wrong,
and also to avoid truly unexpected exceptions getting caught by the blanket catch.