Exemplo de GridLayout (Java Swing)

Um exemplo bem simples de utilização do GridLayout, fiz para minha monitoria de programação no IFRO. É a resolução de uma atividade proposta pelo professor Jones.

Preview:
GridLayout

Código:

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

/**
 * Created by Evandro Murilo on 8/30/17.
 */
public class SwingGrid extends JFrame implements ActionListener {
    JLabel lblNome = new JLabel("Nome do funcionário: "),
           lblTotalV = new JLabel("Total de vendas: "),
           lblC = new JLabel("Comissão: "),
           lblValorC = new JLabel("Valor da comissão: "),
           lblS = new JLabel("Salário: "),
           lblSC = new JLabel("Salário + Comissão: "),
           lblEmpty = new JLabel("");
    TextField txtNome = new TextField(),
              txtTotalV = new TextField(),
              txtValorC = new TextField(),
              txtS = new TextField(),
              txtSC = new TextField();
    JRadioButton rb1 = new JRadioButton("1%"),
                 rb2 = new JRadioButton("2%"),
                 rb3 = new JRadioButton("3%"),
                 rb4 = new JRadioButton("4%");
    JButton btnCalc = new JButton("Calcular");
    ButtonGroup btnGroup = new ButtonGroup();
    GridLayout gridLayout = new GridLayout(0, 2);

    public SwingGrid() {
        setTitle("Swing test");
        setBounds(0, 0, 400, 400);
        setLayout(gridLayout);
        setResizable(false);

        gridLayout.setVgap(10);
        gridLayout.setHgap(20);

        txtSC.setEditable(false);
        txtValorC.setEditable(false);

        add(lblNome);
        add(txtNome);
        add(lblTotalV);
        add(txtTotalV);
        add(lblC);
        add(lblEmpty);
        add(rb1);
        add(rb2);
        add(rb3);
        add(rb4);
        add(lblValorC);
        add(txtValorC);
        add(lblS);
        add(txtS);
        add(lblSC);
        add(txtSC);
        add(btnCalc);

        btnGroup.add(rb1);
        btnGroup.add(rb2);
        btnGroup.add(rb3);
        btnGroup.add(rb4);

        btnCalc.addActionListener(this);
    }

    public static void main(String args[]) {
        new SwingGrid().setVisible(true);
    }

    @Override
    public void actionPerformed(ActionEvent actionEvent) {
        double totalV, c, s, sc, p;

        try {
            totalV = Double.parseDouble(txtTotalV.getText());
            s = Double.parseDouble(txtS.getText());

            if (rb1.isSelected()) p = 0.01;
            else if (rb2.isSelected()) p = 0.02;
            else if (rb3.isSelected()) p = 0.03;
            else p = 0.04;

            c = totalV * p;
            sc = s + c;

            txtValorC.setText(c + "");
            txtSC.setText(sc + "");
        } catch (Exception e) {
            txtValorC.setText("Error");
            txtSC.setText("Error");
        }
    }
}

Alguns exemplos em Java

Voltei a programar um pouco em Java e criei dois repositórios no Github. O primeiro é um exemplo de como utilizar a bandeja do sistema (system tray) no Java Swing, fiz para um aluno que atendi na minha monitoria de programação no IFRO.

O segundo é um exemplo simples de concorrência, tirei a ideia de um exercício do livro Thinking in Java (4th Edition). Pretendo adicionar mais exemplos futuramente.