Wprowadzenie do JPanel w Javie

JPanel to najprostsza lekka klasa kontenerów, która jest częścią pakietu java.swing. Może grupować lub przechowywać zestaw komponentów razem, głównie w celu utworzenia interfejsu użytkownika. Jest podobny do panelu w Abstract Window Toolkit (AWT). JPanel nie zawiera ramki, paska tytułu ani paska menu. Mimo że istnieje kilka menedżerów układu, FlowLayout jest domyślnym menedżerem układu JPanel i dziedziczy klasę JComponents. Jeśli komponent musi zostać dołączony do aplikacji, JPanel zapewnia miejsce. Pozwól nam zrozumieć szczegółowo JPanel w poniższych sekcjach.

Konstruktory JPanel w Javie

JPanel można zadeklarować przy użyciu następującej składni:

public class JPanel extends JComponent implements Accessible

JPanel nie będzie kompletny bez konstruktorów. Poniżej przedstawiono różne konstruktory używane w JPanel.

  • JPanel (): Ponieważ FlowLayout jest domyślnym menedżerem układu, nowy panel jest tworzony za pomocą FlowLayout, jeśli ten konstruktor zostanie wywołany.
  • JPanel (LayoutManager lm): Nowy JPanel jest tworzony za pomocą menedżera układu jako lm.
  • JPanel (Boolean isDoubleBuffered): Nowy JPanel jest tworzony przy pomocy wspomnianej strategii buforowania. Wartość może być prawdziwa lub fałszywa w zależności od wymagań.
  • JPanel (LayoutManager lm, Boolean isDoubleBuffered): Nowy JPanel jest tworzony przy użyciu określonego menedżera układu lm i strategii buforowania.

Funkcje używane w JPanel

Niektóre z typowych funkcji używanych w JPanel to:

  • getUIClassID (): zwracana jest nazwa klasy Look & feel (L i F), która renderuje ten komponent.
  • add (Component comp): Component comp jest dodawany do określonego kontenera.
  • getAccessibleContext (): zwracany jest AccessibleContext związany z JPanel.
  • getUI (): zwracany jest obiekt Look and feel (L & F), który renderuje ten komponent.
  • setLayout (LayoutManager lm): Układ kontenera jest ustawiony na określony menedżer układu lm.
  • setUI (PanelUI Pui): Ustawiony jest wygląd i działanie (L i F) obiektu renderującego ten komponent.
  • updateUI (): Bieżąca wartość wyglądu i działania (L i F) jest resetowana za pomocą właściwości interfejsu użytkownika.
  • paramString (): zwracana jest reprezentacja ciągu JPanel.

Jak utworzyć panel w Javie?

Jak już wspomniano, klasa JPanel należy do pakietu java.swing i podklasy java.swing.JComponent.

1. Obiekt JPanel jest tworzony jak wspomniano poniżej.

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

2. Utwórz klasę, która będzie się opierać na JPanel Class.

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

3. Menedżer układu może być wymieniony lub nie w zależności od wymagań.

Ponieważ FlowLayout jest domyślny, w tym przykładzie możemy użyć innych układów.

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

4. Strategię podwójnego buforowania można zastosować za pomocą konstruktora JPanel (boolean isdoubleBuffered)

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

Po utworzeniu Panelu w Javie ustawmy menedżera układu dla JPanel.

Aby ustawić układ, użyj metody setLayout (LayoutManager lm).

JPanel jp=new JPanel(new GridBagLayout);

Tutaj GridBagLayout jest ustawiony jako układ. Jeśli używamy składni jako

JPanel jp=new JPanel();

Następnie układ jest domyślnie ustawiony jako FlowLayout.

Kroki dodawania komponentów w kontenerze wyjaśniono w poniższej sekcji.

Jak dodać komponenty w Javie?

Aby dodać komponenty takie jak button, JLabel, JTextfield itp. Użyjemy metody add (). Ponieważ istnieją różne wersje metody add (), stosowana metoda zależy od menedżera układu panelu.

1. Metoda Add (Component cmp) będzie używana dla menedżerów układu, takich jak GridLayout, FlowLayout, SpringLayout, BoxLayout.

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

jp jest przedmiotem JPanel.

2. Metoda Add (Component cmp, Object obj) będzie używana w przypadku menedżerów układu, takich jak CardLayout, BorderLayout lub 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);

Jeśli używamy GridBagLayout, GridBagConstraintsobject musi zostać przekazany jako drugi argument.

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);

Jeśli korzystamy z CardLayout, stosowana jest metoda add (String name, Component cmp). Tutaj pierwszym argumentem jest nazwa Card.

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

Program do implementacji JPanel w Javie

Zobaczmy teraz program do implementacji prostego JPanel w Javie.

// 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();
)
)

Wyjście :

W tym programie tworzony jest panel z przyciskami i polami tekstowymi. Dla panelu ustawiono również tło w kolorze zielonym. Kolory, rozmiar, liczbę przycisków można zmieniać w zależności od wymagań 0.

Załóżmy, że chcemy utworzyć składnik za pomocą BorderLayout. Jedyną różnicę w składni wymieniono poniżej.

//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);

Poniżej przedstawiono przykładowe dane wyjściowe dla powyższego BorderLayout.

Wynik:

Wniosek - JPanel w Javie

JPanel to lekki, prosty pojemnik, który grupuje zestaw komponentów razem. Układ można dodać do kontenera na podstawie wymagań użytkownika. Mimo że FlowLayout jest domyślny, używane są również inne układy, takie jak BorderLayout, GridBagLayout, CardLayout. W tym dokumencie wyjaśniono różne konstruktory i kilka innych funkcji JPanel.

Polecane artykuły

To jest przewodnik po JPanel w Javie. Tutaj omawiamy, jak utworzyć panel i jak dodawać komponenty w java wraz z implementacją kodu. Możesz także przejrzeć następujące artykuły, aby dowiedzieć się więcej-

  1. JScrollPane w Javie
  2. JTextField w Javie
  3. JDialog w Javie
  4. JComboBox w Javie
  5. JFrame w Javie
  6. JLabel w Javie