Introdução ao JPanel em Java

O JPanel é uma classe de contêiner leve e mais simples que faz parte do pacote java.swing. Ele pode agrupar ou armazenar um conjunto de componentes, principalmente para criar uma interface com o usuário. É semelhante ao painel no Abstract Window Toolkit (AWT). O JPanel não contém borda, barra de título ou barra de menus. Embora existam vários gerenciadores de layout, o FlowLayout é o gerenciador de layout padrão do JPanel e herda a classe JComponents. Se um componente precisar ser anexado a um aplicativo, o JPanel fornecerá espaço. Vamos entender o JPanel em detalhes nas seções a seguir.

Construtores do JPanel em Java

O JPanel pode ser declarado usando a seguinte sintaxe:

public class JPanel extends JComponent implements Accessible

O JPanel não estará completo sem construtores. A seguir estão os diferentes construtores usados ​​no JPanel.

  • JPanel (): Como o FlowLayout é o gerenciador de layout padrão, um novo painel é criado com o FlowLayout se esse construtor for chamado.
  • JPanel (LayoutManager lm): Um novo JPanel é criado com o gerenciador de layout como lm.
  • JPanel (Boolean isDoubleBuffered): Um novo JPanel é criado com a estratégia de buffer mencionada. O valor pode ser verdadeiro ou falso com base no requisito.
  • JPanel (LayoutManager lm, Boolean isDoubleBuffered): Um novo JPanel é criado com o gerente de layout especificado lm e a estratégia de buffer.

Funções usadas no JPanel

Algumas das funções comuns usadas no JPanel são:

  • getUIClassID (): nome da classe de aparência (L & F) que renderiza esse componente é retornado.
  • add (Component comp): Component comp é adicionado ao contêiner especificado.
  • getAccessibleContext (): AccessibleContext relacionado ao JPanel é retornado.
  • getUI (): Objeto de aparência (L & F) que renderiza esse componente é retornado.
  • setLayout (LayoutManager lm): o layout do contêiner é definido como o gerenciador de layout especificado lm.
  • setUI (PanelUI Pui): Objeto de aparência (L & F) que renderiza esse componente está definido.
  • updateUI (): o valor atual da aparência (L & F) é redefinido com a propriedade da interface do usuário.
  • paramString (): A representação de string do JPanel é retornada.

Como criar painel em Java?

Como já discutido, a classe JPanel é do pacote java.swing e subclasse de java.swing.JComponent.

1. O objeto JPanel é criado como mencionado abaixo.

JPanel jp=new JPanel(); //jp is the object

2. Crie uma classe que se estenda da classe JPanel.

public class jpclass extends JPanel()
(
//code to add the components
)

3. O gerenciador de layout pode ser mencionado ou não com base no requisito.

Como o FlowLayout é o padrão, podemos usar alguns outros layouts no exemplo.

JPanel jp=new JPanel(new BorderLayout);
JPanel jp=new JPanel(new GridBagLayout);

4. A estratégia de buffer duplo pode ser aplicada usando o construtor JPanel (boolean isdoubleBuffered)

JPanel jp=new JPanel(true);//double buffering enables
JPanel jp=new JPanel(false); //double buffering disables

Depois de criar o Painel em Java, vamos definir o gerenciador de layout para o JPanel.

Para definir o layout, use o método setLayout (LayoutManager lm).

JPanel jp=new JPanel(new GridBagLayout);

Aqui, um GridBagLayout é definido como o layout. Se estivermos usando a sintaxe como

JPanel jp=new JPanel();

Em seguida, o layout é definido como FlowLayout no padrão.

As etapas para adicionar componentes no contêiner são explicadas na seção abaixo.

Como adicionar componentes em Java?

Para adicionar componentes como button, JLabel, JTextfield, etc., usaremos o método add (). Como existem versões diferentes para add (), o método usado depende do gerenciador de layout do painel.

1. O método Add (Component cmp) será usado para gerenciadores de layout, como GridLayout, FlowLayout, SpringLayout, BoxLayout.

JLabel jl = new JLabel("Username: ");
JTextField un= new JTextField(20);
jp.add(jl);
jp.add(un);

jp é o objeto do JPanel.

2. O método Add (Component cmp, Object obj) será usado para gerenciadores de layout, como CardLayout, BorderLayout ou GridBagLayout.

JPanel jp = new JPanel(new BorderLayout());
JLabel jl = new JLabel("Username:");
JTextField un = new JTextField(40);
jp.add(label, BorderLayout.NORTH);
jp.add(userName, BorderLayout.WEST);

Se estivermos usando GridBagLayout, GridBagConstraintsobject deverá ser passado como o segundo argumento.

GridBagConstraints cn = new GridBagConstraints();
cn.anchor = GridBagConstraints.WEST;
cn.insets = new Insets(10, 10, 10, 10);
cn.gridx = 0;
cn.gridy = 0;
jp.add(labelUsername, constraints);

Se estivermos usando CardLayout, o método add (String name, Component cmp) será usado. Aqui, o primeiro argumento é o nome do cartão.

JPanel cl = new JPanel(new CardLayout());
cl.add("A", step1Panel);
cl.add("B", step2Panel);

Programa para Implementar JPanel em Java

Agora, vamos ver o programa para implementar o JPanel simples em Java.

// java Program to create a simple JPanel add components to it
import java.awt.*;
import javax.swing.*;
//A sub class is created b extending JFrame
class JPanelProgram extends JFrame (
// creates a JFrame
static JFrame fr;
// creates JButton
static JButton bt, bt1, bt2;
//creates JLabel that helps in displaying the text
static JLabel lb;
// main class
public static void main(String() args)
(
// A new frame is created to store buttons
fr= new JFrame("Panel");
// Label to display text is created
lb= new JLabel("Panel's Label");
//new buttons are created
bt = new JButton("A Button");
bt1 = new JButton("B Button");
bt2 = new JButton("C Button");
//Panel to add buttons is created
JPanel p = new JPanel();
//Add buttons and text field to panel
p.add(bt);
p.add(bt1);
p.add(bt2);
p.add(lb);
// set the background color of panel
p.setBackground(Color.green);
// add panel to frame
fr.add(p);
// set the size of frame
fr.setSize(400, 300);
fr.show();
)
)

Saída :

Neste programa, um painel é criado com botões e campos de texto. O fundo com cor verde também é definido para o painel. Cores, tamanho, número de botões podem ser alterados com base no requisito.

Suponha que desejemos criar um componente com BorderLayout. A única diferença na sintaxe é mencionada abaixo.

//Panel to add buttons is created
JPanel jp = new JPanel(new BorderLayout());
//Add buttons and text field to panel
jp.add(bt, BorderLayout.NORTH);
jp.add(bt1, BorderLayout.SOUTH);
jp.add(bt2, BorderLayout.CENTER);

A seguir, é apresentado o exemplo de saída para o BorderLayout acima.

Resultado:

Conclusão - JPanel em Java

O JPanel é um contêiner simples e leve que agrupa um conjunto de componentes. O layout pode ser adicionado ao contêiner com base nos requisitos do usuário. Embora o FlowLayout seja o padrão, outros layouts como BorderLayout, GridBagLayout, CardLayout também são usados. Neste documento, os diferentes construtores e vários outros recursos do JPanel são explicados.

Artigos recomendados

Este é um guia para o JPanel em Java. Aqui discutimos como criar um painel e como adicionar componentes em java junto com a implementação do código. Você também pode consultar os seguintes artigos para saber mais:

  1. JScrollPane em Java
  2. JTextField em Java
  3. JDialog em Java
  4. JComboBox em Java
  5. JFrame em Java
  6. JLabel em Java