Úvod do JPanel v Javě

JPanel je nejjednodušší lehká třída kontejnerů, která je součástí balíčku java.swing. Může seskupovat nebo ukládat sadu komponent dohromady, hlavně pro vytvoření uživatelského rozhraní. Je to podobné panelu v soupravě abstraktních oken (AWT). JPanel neobsahuje ohraničení, záhlaví nebo lištu nabídek. Přestože existuje několik správců rozvržení, FlowLayout je výchozí správce rozvržení JPanel a dědí třídu JComponent. Pokud součást musí být připojena k aplikaci, JPanel poskytuje prostor. Vysvětlíme JPanel podrobně v následujících sekcích.

Konstruktory JPanel v Javě

JPanel lze deklarovat pomocí následující syntaxe:

public class JPanel extends JComponent implements Accessible

JPanel nebude úplný bez konstruktérů. Následují různé konstruktéry používané v JPanelu.

  • JPanel (): Protože FlowLayout je výchozí správce rozvržení, vytvoří se s FlowLayout nový panel, pokud se tento konstruktor volá.
  • JPanel (LayoutManager lm): Nový JPanel je vytvořen ve správci rozložení jako lm.
  • JPanel (Boolean isDoubleBuffered): Nový JPanel je vytvořen s uvedenou strategií ukládání do vyrovnávací paměti. Hodnota může být na základě požadavku pravdivá nebo nepravdivá.
  • JPanel (LayoutManager lm, Boolean isDoubleBuffered): Nový JPanel je vytvořen se zadanou správou lm manager a strategií ukládání do vyrovnávací paměti.

Funkce použité v JPanel

Některé z běžných funkcí používaných v JPanel jsou:

  • getUIClassID (): Jméno třídy vzhledu a vzhledu (L & F), které vykresluje tuto komponentu.
  • add (Component comp): Component comp je přidán do určeného kontejneru.
  • getAccessibleContext (): Vrací se AccessibleContext související s JPanel.
  • getUI (): Objekt Look and feel (L & F), který vykreslí tuto komponentu, je vrácen.
  • setLayout (LayoutManager lm): Rozložení kontejneru je nastaveno na zadaného správce lm.
  • setUI (PanelUI Pui): Objekt Look and Feel (L & F), který vykresluje tuto komponentu, je nastaven.
  • updateUI (): Aktuální hodnota vzhledu a vzhledu (L & F) je resetována pomocí vlastnosti UI.
  • paramString (): Vrací se řetězcová reprezentace JPanel.

Jak vytvořit panel v Javě?

Jak již bylo uvedeno, třída JPanel je z balíčku java.swing a podtřídy java.swing.JComponent.

1. JPanel objekt je vytvořen, jak je uvedeno níže.

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

2. Vytvořte třídu, která sahá od třídy JPanel.

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

3. Manažer rozložení lze zmínit nebo ne na základě požadavku.

Protože FlowLayout je výchozí, můžeme v příkladu použít některá další rozvržení.

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

4. Strategii dvojitého vyrovnávání lze aplikovat pomocí konstruktoru JPanel (boolean isdoubleBuffered)

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

Po vytvoření panelu v Javě nastavme správce rozložení pro JPanel.

K nastavení rozložení použijte metodu setLayout (LayoutManager lm).

JPanel jp=new JPanel(new GridBagLayout);

Zde je jako rozložení nastavena GridBagLayout. Používáme-li syntaxi jako

JPanel jp=new JPanel();

Ve výchozím nastavení je rozvržení nastaveno jako FlowLayout.

Kroky pro přidání součástí do kontejneru jsou vysvětleny v níže uvedené části.

Jak přidat komponenty do Java?

Abychom přidali komponenty jako tlačítko, JLabel, JTextfield atd., Použijeme metodu add (). Protože existují různé verze pro add (), použitá metoda závisí na správci rozvržení panelu.

1. Metoda Add (Component cmp) bude použita pro manažery rozvržení, jako jsou GridLayout, FlowLayout, SpringLayout, BoxLayout.

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

jp je objekt JPanel.

2. Metoda Add (Component cmp, Object obj) se použije pro manažery rozvržení, jako jsou CardLayout, BorderLayout nebo 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);

Používáme-li GridBagLayout, musí být jako druhý argument předán GridBagConstraintsobject.

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

Používáme-li CardLayout, použije se metoda přidání (String name, Component cmp). Zde je prvním argumentem jméno Card.

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

Program implementace JPanel v Javě

Nyní se podívejme na program implementující jednoduchý JPanel v Javě.

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

Výstup :

V tomto programu je panel vytvořen pomocí tlačítek a textových polí. Pro panel je také nastaveno pozadí se zelenou barvou. Barvy, velikost, počet tlačítek lze měnit na základě požadavku 0n.

Předpokládejme, že chceme vytvořit komponentu s BorderLayout. Jediný rozdíl v syntaxi je uveden níže.

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

Následuje ukázkový výstup pro výše uvedený BorderLayout.

Výstup:

Závěr - JPanel v Javě

JPanel je lehký jednoduchý kontejner, který sdružuje sadu komponent dohromady. Rozložení lze přidat do kontejneru na základě požadavku uživatele. I když je FlowLayout výchozí, používají se i jiná rozvržení, jako je BorderLayout, GridBagLayout, CardLayout. V tomto dokumentu jsou vysvětleny různé konstruktéry a několik dalších funkcí JPanel.

Doporučené články

Toto je průvodce po JPanel v Javě. Zde diskutujeme o tom, jak vytvořit panel a jak přidat komponenty do javy spolu s implementací kódu. Další informace naleznete také v následujících článcích

  1. JScrollPane v Javě
  2. JTextField v Javě
  3. JDialog v Javě
  4. JComboBox v Javě
  5. JFrame v Javě
  6. JLabel v Javě

Kategorie: