1
Swing
Fernando Goulart
Maristela Holanda
Leila de Fátima Carvalho
Java e Interfaces Gráficas
Desktop WEB Móvel
Dados
Dados
_____________
_____________
_____________
_____________
____________
Outra
Aplicação
ou
Legado
ApresentaApresentaççãoão
NegNegóóciocio
Dados ouDados ou
PersistênciaPersistência
AWT x Swing
Java fornece um suporte para construção de
aplicações gráficas por meio de duas interfaces:
AWT (Abstract Windowing Toolkit) . Inicialmente o
único tipo de ferramentas, até a versão 1.1. Todas as
classes estão no pacote java.awt. É bastante incompleta:
faltam Table, TabbedPane, Slider etc. Dependente de
plataforma (peer-model) e comportamento heterogêneo.
Swing/JFC (Java Foundation Class) – surgiu na versão
JDK1.2. Substituiu AWT, mas ainda compartilham partes
fundamentais (como eventos). Atualmente as classes estão
no pacote javax.swing. São “lightweight components”,
independentes de plataforma.
AWT x Swing/JFC
Há compatibilidade entre os componentes AWT e Swing
Há componentes Swing que herdam de componentes
AWT. Exemplo: o componente JFrame, que fornece a
janela principal da aplicação, é derivado da classe Frame.
Os nomes dos componentes JFC/Swing sempre começam
com “J”.
Não mais utilizar os componentes AWT: usar os
componentes correspondentes criados no Swing.
São dois grandes exemplos de reuso: não é necessário
reescrever código, mas apenas utilizar as funcionalidades
implementadas nesses pacotes.
Os 3 elementos AWT/Swing
Componentes gráficos: são elementos que o
usuário manipula com o mouse ou com o teclado.
Gerenciadores de layout: governam a
maneira pela qual os componentes aparecem na tela.
Eventos: assinalam ações do usuário consideradas
importantes, como o click do mouse em um botão.
Java adota o tipo de programação dirigida por
eventos: um evento ocorrido é tratado por event
listener, uma categoria especial de classes.
Componentes
2
Gerenciadores de layout Eventos
JWindow
Dialog
Frame
JLabel
AbstractButton
JPanel
JRootPane
JDialog
JFrame
JButton
Window
JComponent
ContainerComponent
Hierarquia JComponent – totalmente Swing/JFC
1 - Uma aparência (”pluggable look and feel ”) que pode ser especificada
pelo programador ou (opcionalmente) selecionada pelo usuário em
tempo de execução.
3
JComponent
2 - Diversos tipos de borda, que também definem os limites do
componente.
JComponent
3 - A habilidade para definir o tamanho máximo, mínimo e preferido de
um componente, mesmo se a tela for redimensionada.
4 - ToolTip: faixa de texto que aparece quando o cursor passa sobre o
componente.
JFrame
É o tipo mais especializado de janela Java.
Possui uma barra de título e uma borda.
JFrame é derivado do controle da AWT.
Permite interações através de teclado e
mouse.
Incluir no código: import javax.swing.*;
É um container: pode conter outros
componentes.
JFrame
Possui 5 subcontainers. Por isso, é
ligeiramente incompatível com
java.awt.Frame, que não possui
subcontainers.
um gerenciador de layout é
automaticamente associado a cada um de
seus subcontainers.
Os containers de JFrame
Consulte: http://java.sun.com/products/jfc/tsc/articles/containers/index.html
J
J
ContentPane
Os containers de JFrame
11 -- JRootPaneJRootPane: container principal de JFrame, gerencia os demais
subcontainers.
Consulte:
http://java.sun.com/docs/books/tutorial/uiswing/components/rootpane.html
22 -- JLayeredPaneJLayeredPane: adiciona profundidade a um container, permitindo
sobreposição de componentes, quando necessário. Veja exemplos em:
http://java.sun.com/docs/books/tutorial/uiswing/components/rootpane.
html#layeredpane.
4
Os containers de JFrame
3 - MenuBar: encapsula os conceitos da plataforma para os limites da
barra de menu. Para associar uma barra de menu à janela, chamar
setMenuBar. O gerenciador de layout default é o BoxLayout.
Consulte:
http://java.sun.com/docs/books/tutorial/uiswing/components/menu.html
44 -- GlassPane: o painel de vidro, a vidraça. Permite interceptar ou
impedir eventos de mouse, torna os componentes gráficos inacessíveis,
embora visíveis. Consulte:
http://java.sun.com/docs/books/tutorial/uiswing/components/rootpane.h
tml#glasspane
Os containers de JFrame
55 -- ContentPaneContentPane: é área de trabalho onde adicionamos diretamente nossos
componentes. O gerenciador de layout default é o BorderLayoutBorderLayout. Para obter
este componente, execute objJanela.getContentPane( ). Consulte:
http://java.sun.com/docs/books/tutorial/uiswing/components/toplevel.html
JFrame - exemplo
import javax.swing.JFrame;
public class MeuPrimeiroFrame extends JFrame{
public MeuPrimeiroFrame(){
super("Meu Primeiro JFrame");
this.setSize(200, 200);
this.setVisible(true);
}
public static void main(String[] args) {
MeuPrimeiroFrame frame = new MeuPrimeiroFrame();
}
}
JFrame
import javax.swing.JFrame;
public class MeuSegundoFrame {
JFrame quadro;
public MeuSegundoFrame(){
quadro = new JFrame("Meu Segundo Frame");
quadro.setSize(200,200);
quadro.setVisible(true);
}
public static void main(String args[]){
MeuSegundoFrame janela = new MeuSegundoFrame();
}
}
Interfaces gráficas - boas
práticas
Os atributos de instância devem ter visibilidade
private.
Os métodos de instância devem ter visibilidade
public.
Por legibilidade, declare os atributos
preferencialmente logo no início da classe.
Também podem ser declarados ao final, após
todos os métodos.
Instancie os atributos dentro do construtor, ou
nos métodos correspondentes chamados por ele.
Interfaces gráficas - boas práticas
Configure agrupadamente todas as
características de um atributo. Para tratar o
próximo atributo, salte uma linha e recomece
o mesmo processo.
Deixe para o final da classe a área de
adicionar atributos aos containers, isto é, a
chamada dos métodos add .
O setVisible(true) deve aparecer como última
instrução.
5
Interfaces gráficas - boas práticas - exemplo
//imports
import ...
public class BoasPraticas {
//declaração
private JPanel p;
private Jframe j;
public BoasPraticas () {
//instanciação
p = new JPanel();
...
//configuração de cada atributo
p.setBackground(Color.GREEN);
...
//adição aos containers
c.add(p);
....
j.setVisible(true);
}
public static void main(String args[]){
BoasPraticas tela = new BoasPraticas ( );
} }
Alguns componentes
Classes Básicas (Color, Font, etc...)
Color: atribui cor (frente ou fundo) ao componente, através da
composição primária de vermelho, verde e azul (padrão RGB). Use:
1 - o construtor Color(int red, int green, int blue);
2 - ou as Constantes (também em minúsculas):
BLACK BLUE CYAN
DARK_GRAY GRAY GREEN
LIGHT_GRAY MAGENTA ORANGE
PINK RED WHITE
YELLOW
Exemplo: Color c = new Color (255, 51, 0); //red
Font
Font: determina a fonte (letra) em que os rótulos serão
escritos.
Use o construtor
Font(String nome, int estilo, int tamanho).
Estilo: PLAIN, BOLD, ITALIC (use o + para juntar
estilos)
Exemplo: Font f = new Font(“arial”, Font.BOLD, 14);
Font f = new Font(“arial”, Font.BOLD + Font.ITALIC, 14);
Diálogos Pré-definidos
O Swing oferece um conjunto de
diálogos simples pré-definidos para uso
em interações breves com o usuário
mensagens de erro, de alerta
obtenção de uma confirmação
entrada de um único campo de texto
Classe JOptionPane
Estrutura básica:
ícone
mensagem
entrada de dados
botões de opção
6
MessageDialog
Exibe uma mensagem e aguarda OK do
usuário
INFORMATION
QUESTION
WARNING
ERROR
PLAIN
Exemplo de MessageDialog
JOptionPane.showMessageDialog(null,
"Vamos estudar pessoal !!!",
"Dica do Dia",
JOptionPane.WARNING_MESSAGE);
ConfirmDialog
Exibe uma mensagem e obtém uma confirmação
(YES/NO, OK/CANCEL)
Conjuntos de botões de opção (optionType):
JOptionPane.DEFAULT_OPTION
JOptionPane.YES_NO_OPTION
JOptionPane.YES_NO_CANCEL_OPTION
JOptionPane.OK_CANCEL_OPTION
Exemplo de ConfirmDialog
int resp = JOptionPane.showConfirmDialog(null,
"Vamos estudar?",
"Escolha uma opção",
JOptionPane.YES_NO_OPTION );
InputDialog
Exibe uma mensagem e obtém um valor de entrada do
usuário
String nome = JOptionPane.showInputDialog(null,
"Qual é o seu nome?",
"Identifique-se",
JOptionPane.QUESTION_MESSAGE);
OptionDialog
Exibe uma mensagem (ou objeto) e
obtém uma opção escolhida pelo
usuário
O número de botões e seus textos são
configuráveis
A opção default é configurável
7
Exemplo de OptionDialog
Object[] opcoes = {"Sim", "Não", "Mais Tarde",
"Amanhã", "Sei lá!"};
int resp1 = JOptionPane.showOptionDialog(null,
"Vamos Estudar?",
"Escolha uma opção",
JOptionPane.DEFAULT_OPTION,
JOptionPane.QUESTION_MESSAGE,
null,
opcoes,
opcoes[0]);
Painel de Conteúdo
import java.awt.Container;
import javax.swing.JFrame;
public class MeuPainelConteudo {
JFrame quadro;
Container c;
public MeuPainelConteudo(){
quadro = new JFrame();
quadro.setSize(200,200);
// Painel de conteúdo
c = quadro.getContentPane();
quadro.setVisible(true);
}
}
JLabel
Utilizado para colocar texto e Imagem
em uma Tela
JLabel
public class CriandoLabels {
private JLabel titulo1;
private JFrame quadro;
private Container c;
public CriandoLabels(){
quadro = new JFrame("Criando Labels");
quadro.setSize(300, 200);
// recebendo um Container
c = quadro.getContentPane();
c.setLayout(new FlowLayout());
c.setBackground(Color.YELLOW);
// Criando os Labels
titulo1 = new JLabel("Meu Primeiro Label");
c.add(titulo1);
quadro.setVisible(true);
}
public static void main (String args[]){
CriandoLabels rotulos = new CriandoLabels();}}
JLabel
// Criando os Labels configurando com o outro formato
titulo2 = new JLabel("Meu Label em Negrito");
titulo2.setFont(new Font ("Chiller", Font.BOLD ,20));
c.add(titulo2);
JLabel
titulo3 = new JLabel("Meu label vermelho");
titulo3.setOpaque(true);
titulo3.setBackground(Color.red);
titulo3.setToolTipText("Isso é um label com o background vermelho...");
c.add(titulo3);
8
JLabel
java.net.URL imgURL = CriandoLabels.class.getResource("duke-guitar.png");
ImageIcon imagem = new ImageIcon(imgURL, "Duke muito feliz");
titulo4 = new JLabel("SOu o DuKe",imagem, JLabel.CENTER);
c.add(titulo4);
JTextField
// Criando um JTextField
JTextField texto1 = new JTextField(10);
c.add(texto1);
// Criando um JTextField
JTextField texto2 = new JTextField("Sou o texto 2");
c.add(texto2);
// Criando um JTextField
JTextField texto3 = new JTextField("Sou o texto 2", 20);
c.add(texto3);
JTextArea
// Criando Area de Textos
JTextArea areaTexto = new JTextArea(5,20);
c.add(areaTexto);
JTextArea com JScrollPane
// Criando Area de Textos
JTextArea areaTexto = new JTextArea(5,20);
JScrollPane scrollPane = new JScrollPane(areaTexto);
scrollPane.setVerticalScrollBarPolicy(
JScrollPane.VERTICAL_SCROLLBAR_ALWAYS);
c.add(scrollPane);
JRadioButton
// Criando os Radio Button
JRadioButton botaoF = new JRadioButton("Feminino");
c.add(botaoF);
JRadioButton botaoM = new JRadioButton("Masculino");
c.add(botaoM);
// Agrupar os Botoes
ButtonGroup botoes = new ButtonGroup();
botoes.add(botaoF);
botoes.add(botaoM);
JPane
public class CriandoPane extends JFrame {
public CriandoPane(){
super("Criando Pane");
this.setSize(300, 300);
Container c = this.getContentPane();
c.setLayout(new FlowLayout());
JPanel painelAzul = new JPanel();
painelAzul.setPreferredSize(new Dimension(300,100));
painelAzul.setBackground(Color.BLUE );
c.add(painelAzul);
...
9
JPane
JPanel painelVermelho = new JPanel();
painelVermelho.setPreferredSize(new Dimension(300,100));
painelVermelho.setBackground(Color.RED );
// Criando uma Borda
Border borda = BorderFactory.createLineBorder(Color.YELLOW);
TitledBorder bordaComTitulo = BorderFactory.createTitledBorder(borda,"Meu Painel");
painelVermelho.setBorder(bordaComTitulo);
c.add(painelVermelho);
this.setVisible(true);
}
public static void main(String args[]){
CriandoPane programa = new CriandoPane();}}

Java swingcomponentes

  • 1.
    1 Swing Fernando Goulart Maristela Holanda Leilade Fátima Carvalho Java e Interfaces Gráficas Desktop WEB Móvel Dados Dados _____________ _____________ _____________ _____________ ____________ Outra Aplicação ou Legado ApresentaApresentaççãoão NegNegóóciocio Dados ouDados ou PersistênciaPersistência AWT x Swing Java fornece um suporte para construção de aplicações gráficas por meio de duas interfaces: AWT (Abstract Windowing Toolkit) . Inicialmente o único tipo de ferramentas, até a versão 1.1. Todas as classes estão no pacote java.awt. É bastante incompleta: faltam Table, TabbedPane, Slider etc. Dependente de plataforma (peer-model) e comportamento heterogêneo. Swing/JFC (Java Foundation Class) – surgiu na versão JDK1.2. Substituiu AWT, mas ainda compartilham partes fundamentais (como eventos). Atualmente as classes estão no pacote javax.swing. São “lightweight components”, independentes de plataforma. AWT x Swing/JFC Há compatibilidade entre os componentes AWT e Swing Há componentes Swing que herdam de componentes AWT. Exemplo: o componente JFrame, que fornece a janela principal da aplicação, é derivado da classe Frame. Os nomes dos componentes JFC/Swing sempre começam com “J”. Não mais utilizar os componentes AWT: usar os componentes correspondentes criados no Swing. São dois grandes exemplos de reuso: não é necessário reescrever código, mas apenas utilizar as funcionalidades implementadas nesses pacotes. Os 3 elementos AWT/Swing Componentes gráficos: são elementos que o usuário manipula com o mouse ou com o teclado. Gerenciadores de layout: governam a maneira pela qual os componentes aparecem na tela. Eventos: assinalam ações do usuário consideradas importantes, como o click do mouse em um botão. Java adota o tipo de programação dirigida por eventos: um evento ocorrido é tratado por event listener, uma categoria especial de classes. Componentes
  • 2.
    2 Gerenciadores de layoutEventos JWindow Dialog Frame JLabel AbstractButton JPanel JRootPane JDialog JFrame JButton Window JComponent ContainerComponent Hierarquia JComponent – totalmente Swing/JFC 1 - Uma aparência (”pluggable look and feel ”) que pode ser especificada pelo programador ou (opcionalmente) selecionada pelo usuário em tempo de execução.
  • 3.
    3 JComponent 2 - Diversostipos de borda, que também definem os limites do componente. JComponent 3 - A habilidade para definir o tamanho máximo, mínimo e preferido de um componente, mesmo se a tela for redimensionada. 4 - ToolTip: faixa de texto que aparece quando o cursor passa sobre o componente. JFrame É o tipo mais especializado de janela Java. Possui uma barra de título e uma borda. JFrame é derivado do controle da AWT. Permite interações através de teclado e mouse. Incluir no código: import javax.swing.*; É um container: pode conter outros componentes. JFrame Possui 5 subcontainers. Por isso, é ligeiramente incompatível com java.awt.Frame, que não possui subcontainers. um gerenciador de layout é automaticamente associado a cada um de seus subcontainers. Os containers de JFrame Consulte: http://java.sun.com/products/jfc/tsc/articles/containers/index.html J J ContentPane Os containers de JFrame 11 -- JRootPaneJRootPane: container principal de JFrame, gerencia os demais subcontainers. Consulte: http://java.sun.com/docs/books/tutorial/uiswing/components/rootpane.html 22 -- JLayeredPaneJLayeredPane: adiciona profundidade a um container, permitindo sobreposição de componentes, quando necessário. Veja exemplos em: http://java.sun.com/docs/books/tutorial/uiswing/components/rootpane. html#layeredpane.
  • 4.
    4 Os containers deJFrame 3 - MenuBar: encapsula os conceitos da plataforma para os limites da barra de menu. Para associar uma barra de menu à janela, chamar setMenuBar. O gerenciador de layout default é o BoxLayout. Consulte: http://java.sun.com/docs/books/tutorial/uiswing/components/menu.html 44 -- GlassPane: o painel de vidro, a vidraça. Permite interceptar ou impedir eventos de mouse, torna os componentes gráficos inacessíveis, embora visíveis. Consulte: http://java.sun.com/docs/books/tutorial/uiswing/components/rootpane.h tml#glasspane Os containers de JFrame 55 -- ContentPaneContentPane: é área de trabalho onde adicionamos diretamente nossos componentes. O gerenciador de layout default é o BorderLayoutBorderLayout. Para obter este componente, execute objJanela.getContentPane( ). Consulte: http://java.sun.com/docs/books/tutorial/uiswing/components/toplevel.html JFrame - exemplo import javax.swing.JFrame; public class MeuPrimeiroFrame extends JFrame{ public MeuPrimeiroFrame(){ super("Meu Primeiro JFrame"); this.setSize(200, 200); this.setVisible(true); } public static void main(String[] args) { MeuPrimeiroFrame frame = new MeuPrimeiroFrame(); } } JFrame import javax.swing.JFrame; public class MeuSegundoFrame { JFrame quadro; public MeuSegundoFrame(){ quadro = new JFrame("Meu Segundo Frame"); quadro.setSize(200,200); quadro.setVisible(true); } public static void main(String args[]){ MeuSegundoFrame janela = new MeuSegundoFrame(); } } Interfaces gráficas - boas práticas Os atributos de instância devem ter visibilidade private. Os métodos de instância devem ter visibilidade public. Por legibilidade, declare os atributos preferencialmente logo no início da classe. Também podem ser declarados ao final, após todos os métodos. Instancie os atributos dentro do construtor, ou nos métodos correspondentes chamados por ele. Interfaces gráficas - boas práticas Configure agrupadamente todas as características de um atributo. Para tratar o próximo atributo, salte uma linha e recomece o mesmo processo. Deixe para o final da classe a área de adicionar atributos aos containers, isto é, a chamada dos métodos add . O setVisible(true) deve aparecer como última instrução.
  • 5.
    5 Interfaces gráficas -boas práticas - exemplo //imports import ... public class BoasPraticas { //declaração private JPanel p; private Jframe j; public BoasPraticas () { //instanciação p = new JPanel(); ... //configuração de cada atributo p.setBackground(Color.GREEN); ... //adição aos containers c.add(p); .... j.setVisible(true); } public static void main(String args[]){ BoasPraticas tela = new BoasPraticas ( ); } } Alguns componentes Classes Básicas (Color, Font, etc...) Color: atribui cor (frente ou fundo) ao componente, através da composição primária de vermelho, verde e azul (padrão RGB). Use: 1 - o construtor Color(int red, int green, int blue); 2 - ou as Constantes (também em minúsculas): BLACK BLUE CYAN DARK_GRAY GRAY GREEN LIGHT_GRAY MAGENTA ORANGE PINK RED WHITE YELLOW Exemplo: Color c = new Color (255, 51, 0); //red Font Font: determina a fonte (letra) em que os rótulos serão escritos. Use o construtor Font(String nome, int estilo, int tamanho). Estilo: PLAIN, BOLD, ITALIC (use o + para juntar estilos) Exemplo: Font f = new Font(“arial”, Font.BOLD, 14); Font f = new Font(“arial”, Font.BOLD + Font.ITALIC, 14); Diálogos Pré-definidos O Swing oferece um conjunto de diálogos simples pré-definidos para uso em interações breves com o usuário mensagens de erro, de alerta obtenção de uma confirmação entrada de um único campo de texto Classe JOptionPane Estrutura básica: ícone mensagem entrada de dados botões de opção
  • 6.
    6 MessageDialog Exibe uma mensageme aguarda OK do usuário INFORMATION QUESTION WARNING ERROR PLAIN Exemplo de MessageDialog JOptionPane.showMessageDialog(null, "Vamos estudar pessoal !!!", "Dica do Dia", JOptionPane.WARNING_MESSAGE); ConfirmDialog Exibe uma mensagem e obtém uma confirmação (YES/NO, OK/CANCEL) Conjuntos de botões de opção (optionType): JOptionPane.DEFAULT_OPTION JOptionPane.YES_NO_OPTION JOptionPane.YES_NO_CANCEL_OPTION JOptionPane.OK_CANCEL_OPTION Exemplo de ConfirmDialog int resp = JOptionPane.showConfirmDialog(null, "Vamos estudar?", "Escolha uma opção", JOptionPane.YES_NO_OPTION ); InputDialog Exibe uma mensagem e obtém um valor de entrada do usuário String nome = JOptionPane.showInputDialog(null, "Qual é o seu nome?", "Identifique-se", JOptionPane.QUESTION_MESSAGE); OptionDialog Exibe uma mensagem (ou objeto) e obtém uma opção escolhida pelo usuário O número de botões e seus textos são configuráveis A opção default é configurável
  • 7.
    7 Exemplo de OptionDialog Object[]opcoes = {"Sim", "Não", "Mais Tarde", "Amanhã", "Sei lá!"}; int resp1 = JOptionPane.showOptionDialog(null, "Vamos Estudar?", "Escolha uma opção", JOptionPane.DEFAULT_OPTION, JOptionPane.QUESTION_MESSAGE, null, opcoes, opcoes[0]); Painel de Conteúdo import java.awt.Container; import javax.swing.JFrame; public class MeuPainelConteudo { JFrame quadro; Container c; public MeuPainelConteudo(){ quadro = new JFrame(); quadro.setSize(200,200); // Painel de conteúdo c = quadro.getContentPane(); quadro.setVisible(true); } } JLabel Utilizado para colocar texto e Imagem em uma Tela JLabel public class CriandoLabels { private JLabel titulo1; private JFrame quadro; private Container c; public CriandoLabels(){ quadro = new JFrame("Criando Labels"); quadro.setSize(300, 200); // recebendo um Container c = quadro.getContentPane(); c.setLayout(new FlowLayout()); c.setBackground(Color.YELLOW); // Criando os Labels titulo1 = new JLabel("Meu Primeiro Label"); c.add(titulo1); quadro.setVisible(true); } public static void main (String args[]){ CriandoLabels rotulos = new CriandoLabels();}} JLabel // Criando os Labels configurando com o outro formato titulo2 = new JLabel("Meu Label em Negrito"); titulo2.setFont(new Font ("Chiller", Font.BOLD ,20)); c.add(titulo2); JLabel titulo3 = new JLabel("Meu label vermelho"); titulo3.setOpaque(true); titulo3.setBackground(Color.red); titulo3.setToolTipText("Isso é um label com o background vermelho..."); c.add(titulo3);
  • 8.
    8 JLabel java.net.URL imgURL =CriandoLabels.class.getResource("duke-guitar.png"); ImageIcon imagem = new ImageIcon(imgURL, "Duke muito feliz"); titulo4 = new JLabel("SOu o DuKe",imagem, JLabel.CENTER); c.add(titulo4); JTextField // Criando um JTextField JTextField texto1 = new JTextField(10); c.add(texto1); // Criando um JTextField JTextField texto2 = new JTextField("Sou o texto 2"); c.add(texto2); // Criando um JTextField JTextField texto3 = new JTextField("Sou o texto 2", 20); c.add(texto3); JTextArea // Criando Area de Textos JTextArea areaTexto = new JTextArea(5,20); c.add(areaTexto); JTextArea com JScrollPane // Criando Area de Textos JTextArea areaTexto = new JTextArea(5,20); JScrollPane scrollPane = new JScrollPane(areaTexto); scrollPane.setVerticalScrollBarPolicy( JScrollPane.VERTICAL_SCROLLBAR_ALWAYS); c.add(scrollPane); JRadioButton // Criando os Radio Button JRadioButton botaoF = new JRadioButton("Feminino"); c.add(botaoF); JRadioButton botaoM = new JRadioButton("Masculino"); c.add(botaoM); // Agrupar os Botoes ButtonGroup botoes = new ButtonGroup(); botoes.add(botaoF); botoes.add(botaoM); JPane public class CriandoPane extends JFrame { public CriandoPane(){ super("Criando Pane"); this.setSize(300, 300); Container c = this.getContentPane(); c.setLayout(new FlowLayout()); JPanel painelAzul = new JPanel(); painelAzul.setPreferredSize(new Dimension(300,100)); painelAzul.setBackground(Color.BLUE ); c.add(painelAzul); ...
  • 9.
    9 JPane JPanel painelVermelho =new JPanel(); painelVermelho.setPreferredSize(new Dimension(300,100)); painelVermelho.setBackground(Color.RED ); // Criando uma Borda Border borda = BorderFactory.createLineBorder(Color.YELLOW); TitledBorder bordaComTitulo = BorderFactory.createTitledBorder(borda,"Meu Painel"); painelVermelho.setBorder(bordaComTitulo); c.add(painelVermelho); this.setVisible(true); } public static void main(String args[]){ CriandoPane programa = new CriandoPane();}}