Nível Atômico
Rótulos
JLabel
Um JLabel
é um componente do Java Swing que exibe um texto ou uma imagem na interface gráfica. Ele é comumente usado para exibir títulos, rótulos, mensagens e ícones.
// Cria um JLabel com o texto "Olá, mundo!"
JLabel label = new JLabel("Olá, mundo!");
label.setText("Olá, mundo mais uma vez!"); // altera o texto do label
Campos de Texto
JTextField
Um JTextField
é um componente do Swing que permite ao usuário inserir e editar uma única linha de texto. É semelhante a uma caixa de entrada de texto em um formulário da web.
// Cria um novo campo editável com o placeholder "Digite algo aqui..."
JTextField textField = new JTextField("Digite algo aqui...");
// define um textField com 20 colunas. Esse processo só surte efeito quando em layouts que ão extendam o componente
JTextField textField2 = new JTextField(20);
textField.setText("Digite!"); // altera o texto do campo
textField.setEnabled(false); // desabilita o campo
textField.setEditable(false); // desabilita a edição do campo (fica desabilitado e cinza)
String text = textField.getText(); // retorna o texto do campo
Nesse exemplo, um novo JFrame
é criado com o título "Exemplo JTextField". Em seguida, um novo JTextField
é criado com o texto padrão "Digite algo aqui..." e adicionado ao JFrame usando o método add()
. Por fim, o tamanho do JFrame é definido como 300x100 pixels e tornando-o visível com o método setVisible()
.
JTextArea
O componente JTextArea
é um componente de interface gráfica do usuário que permite a edição de texto em várias linhas. Ele pode ser usado para entrada de texto pelo usuário ou para exibição de texto formatado.
// Cria um novo campo editável com o placeholder "Digite algo aqui..."
JTextArea textArea = new JTextArea("Digite seu texto aqui...");
textArea.setText("Digite!"); // altera o texto do campo
textArea.setEnabled(false); // desabilita o campo
textArea.setEditable(false); // desabilita a edição do campo (fica desabilitado e cinza)
String text = textArea.getText(); // retorna o texto do campo
Botões
JButton
Um JButton
é um componente do Java Swing que representa um botão clicável.
// Cria um botão com o texto "Clique aqui!"
JButton botao = new JButton("Clique aqui!");
botao.setText("Clique!"); // altera o texto do botão
botao.setEnabled(false); // desabilita o botão
Botões de Opção
JToggleButton
O JToggleButton
é um componente Swing que representa um botão que pode ser alternado entre dois estados, normalmente representados por "ligado" e "desligado".
// Cria um JToggleButton
JToggleButton toggleButton = new JToggleButton("Ligar/Desligar");
toggleButton.setText("Clique!"); // altera o texto do botão
toggleButton.setEnabled(false); // desabilita o botão
toggleButton.setSelected(true); // marca o botão como selecionado
boolean result = toggleButton.isSelected(); // retorna true quando selecionado
JCheckBox
Um JCheckBox
é um componente do Swing que permite ao usuário selecionar uma ou mais opções a partir de um conjunto de escolhas possíveis. Ele é uma caixa de seleção que apresenta um texto descritivo ao lado.
// Cria checkboxes
JCheckBox checkBox1 = new JCheckBox("Opção 1");
JCheckBox checkBox2 = new JCheckBox("Opção 2");
JCheckBox checkBox3 = new JCheckBox("Opção 3");
checkBox1.setText("Clique!"); // altera o texto do checkbox
checkBox1.setEnabled(false); // desabilita o checkbox
checkBox1.setSelected(true); // marca o checkbox como selecionado
boolean result = checkBox1.isSelected(); // retorna true quando selecionado
JRadioButton
Um JRadioButton
é um componente Swing que representa um botão de opção. Ele permite que o usuário selecione uma única opção a partir de um grupo de opções mutuamente exclusivas. Quando um JRadioButton é selecionado, os outros JRadioButtons no mesmo grupo são desmarcados automaticamente.
// Cria radioButtons
JRadioButton radio1 = new JRadioButton("Option 1");
JRadioButton radio2 = new JRadioButton("Option 2");
JRadioButton radio3 = new JRadioButton("Option 3");
radio1.setText("Clique!"); // altera o texto do checkbox
radio1.setEnabled(false); // desabilita o checkbox
radio1.setSelected(true); // marca o checkbox como selecionado
boolean result = radio1.isSelected(); // retorna true quando selecionado
Para que os radios funcionem conforme o esperado e realmente permitam apenas uma opção marcada por vez, é necessário o uso de um ButtonGroup
.
ButtonGroup
O ButtonGroup
é um componente do Swing que permite agrupar botões de forma que apenas um deles possa ser selecionado por vez. O elemento pode agrupar qualquer tipo de botão mas é mais utilizado com JRadioButton
devido ao funcionamento esperado deste elemento.
import javax.swing.*;
import java.awt.*;
public class ButtonGroupExample {
public static void main(String[] args) {
JFrame frame = new JFrame("ButtonGroup Example");
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
JRadioButton radio1 = new JRadioButton("Option 1");
JRadioButton radio2 = new JRadioButton("Option 2");
// Cria um ButtonGroup e adiciona os botões de opção a ele
ButtonGroup group = new ButtonGroup();
group.add(radio1);
group.add(radio2);
// Adiciona os botões de opção ao JFrame
frame.add(radio1);
frame.add(radio2);
frame.pack();
frame.setVisible(true);
// Imprime o texto do radio selecionado
Enumeration<AbstractButton> elements = group.getElements();
while(elements.hasMoreElements()){
JRadioButton radio = (JRadioButton) elements.nextElement();
if(radio.isSelected())
System.out.println(radio.getText());
}
}
}
Nesse exemplo, criamos dois botões de opção (JRadioButton
) e depois criamos um ButtonGroup
para agrupá-los. Em seguida, adicionamos os botões de opção ao JFrame
e, por fim, fizemos o frame ser visível.
Observe que, como os botões de opção foram adicionados ao ButtonGroup
, apenas um deles pode ser selecionado por vez. Caso um botão de opção seja selecionado, a seleção do outro botão será automaticamente desmarcada.
Demais Elementos
JComboBox
O JComboBox
é um componente swing que exibe uma lista suspensa de opções. O usuário pode selecionar uma opção a partir da lista suspensa.
String[] opcoes = { "Opção 1", "Opção 2", "Opção 3" }; // cria array de opções
JComboBox<String> comboBox = new JComboBox<>(opcoes); // instancia combo box com as opções definidas
comboBox.setSelectedIndex(1); // define a opção selecionada para "Opção 2"
int index = comboBox.getSelectedIndex(); // retorna a opção selecionada
JTable
Um JTable
é um componente de interface gráfica do usuário do Java Swing que permite a exibição de dados em uma tabela. Ele é muito útil para exibir e manipular dados tabulares em uma interface de usuário.
Aqui está um exemplo simples de como criar um JTable
em um JFrame
:
import javax.swing.JFrame;
import javax.swing.JScrollPane;
import javax.swing.JTable;
public class ExemploJTable extends JFrame {
public ExemploJTable() {
super("Exemplo de JTable");
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
// Cria os dados da tabela
Object[][] dados = {
{"Maria", "Feminino", 25},
{"João", "Masculino", 30},
{"Ana", "Feminino", 20},
{"Pedro", "Masculino", 35},
};
// Cria os nomes das colunas
String[] colunas = {"Nome", "Gênero", "Idade"};
// Cria a tabela com os dados e as colunas
JTable tabela = new JTable(dados, colunas);
// Define tabela como NÃO editável
tabela.setDefaultEditor(Object.class, null); //Remover caso deseja editar
// Cria um JScrollPane para a tabela
JScrollPane scrollPane = new JScrollPane(tabela);
// Adiciona o JScrollPane ao JFrame
add(scrollPane);
// Define o tamanho do JFrame e o torna visível
setSize(400, 300);
setVisible(true);
}
public static void main(String[] args) {
new ExemploJTable();
}
}
Neste exemplo, criamos um JFrame
que contém um JTable
com dados fictícios. Para criar a tabela, primeiro criamos uma matriz de objetos que contém os dados que serão exibidos na tabela. Em seguida, criamos um array de strings que contém os nomes das colunas.
Depois, criamos um JTable
passando os dados e as colunas como parâmetros. Em seguida, criamos um JScrollPane
que contém a tabela, para permitir a rolagem se houver muitos dados na tabela.
Por fim, adicionamos o JScrollPane
ao JFrame
e definimos seu tamanho antes de torná-lo visível.
JSlider
O JSlider
é um componente Swing que permite ao usuário selecionar um valor em um intervalo específico. É frequentemente utilizado para permitir que o usuário escolha um valor numérico de um conjunto predefinido de valores.
Para definir um JSlider
, podemos utilizar o seguinte código:
// Instancia um slider HORIZONTAL de 0 a 100 com o valor padrão em 50
// para um slider vertical, usar a constante JSlider.Vertical
JSlider slider = new JSlider(JSlider.HORIZONTAL, 0, 100, 50);
slider.setMinorTickSpacing(5); // define o espaçamento dos "MinorTicks"
slider.setMajorTickSpacing(25); // define o epaçamento dos "MajorTicks"
slider.setPaintTicks(true); // apresenta marcações conforme o espaçamento de "MinorTicks"
slider.setPaintLabels(true); // apresenta labels para "MajorTicks"
slider.setValue(15); // define a posição do slider no valor 15
int value = slider.getValue(); // retorna o valor do slider
JOptionPane
O JOptionPane
é um componente do Java Swing que permite exibir caixas de diálogo para interagir com o usuário, como por exemplo para exibir mensagens de alerta, solicitar entrada de dados, confirmar ações e escolher opções.
Aqui está um exemplo simples de como usar o JOptionPane
para exibir uma mensagem de alerta:
import javax.swing.*;
public class ExemploJOptionPane {
public static void main(String[] args) {
UIManager.put("OptionPane.cancelButtonText", "Cancelar");
UIManager.put("OptionPane.okButtonText", "Ok");
UIManager.put("OptionPane.yesButtonText", "Sim");
UIManager.put("OptionPane.noButtonText", "Não");
JOptionPane.showMessageDialog(null, "Esta é uma mensagem de alerta!", "Alerta", JOptionPane.WARNING_MESSAGE);
JOptionPane.showMessageDialog(null, "Esta é uma mensagem de erro!", "Erro", JOptionPane.ERROR_MESSAGE);
JOptionPane.showMessageDialog(null, "Esta é uma mensagem de informação!", "Informação", JOptionPane.INFORMATION_MESSAGE);
JOptionPane.showMessageDialog(null, "Esta é uma mensagem sem ícone!", "Mensagem", JOptionPane.DEFAULT_OPTION);
String input = JOptionPane.showInputDialog(null, "Quantos anos você tem?", "Responda", JOptionPane.DEFAULT_OPTION);
Object[] possibilities = {"PlayStation", "Xbox", "PC", "Switch"};
input= (String)JOptionPane.showInputDialog(null,"Qual seu console preferido?","Escolha um console:",JOptionPane.QUESTION_MESSAGE,null,possibilities,"PC");
int resposta = JOptionPane.showConfirmDialog(null, "Deseja sair?", "Responda", JOptionPane.YES_NO_CANCEL_OPTION);
Object[] options = {"Sim, por favor",
"Não, obrigado",
"Talvez"};
resposta = JOptionPane.showOptionDialog(null, "Deseja sair?", "Responda", JOptionPane.YES_NO_CANCEL_OPTION,JOptionPane.QUESTION_MESSAGE,null,options,2);
}
}
No exemplo acima são alterados os textos padrões dos botões do JOptionPane
além de serem apresentados múltiplos diálogos diferentes para diferentes situações. Importante notar observar que o primeiro parâmetro é a referência do diálogo na tela e deve ser definido como frame principal em uma aplicação real.
//Define frame
JFrame frame = new JFrame();
JFrame frame = new JFrame("Dialog Example");
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setSize(400, 300);
setVisible(true);
//Apresenta mensagem posicionada com relação ao frame pai
JOptionPane.showMessageDialog(frame, "Esta é uma mensagem de alerta!", "Alerta", JOptionPane.WARNING_MESSAGE);
Referências
Last updated