Въведение в JPanel в Java

JPanel е най-простият лек клас контейнер, който е част от пакета java.swing. Той може да групира или съхранява набор от компоненти заедно, главно за създаване на потребителски интерфейс. Подобно е на панела в абстрактния инструментариум на прозореца (AWT). JPanel не съдържа рамка, заглавна лента или лента с менюта. Въпреки че съществуват няколко мениджъра на оформления, FlowLayout е мениджърът на оформлението по подразбиране на JPanel и наследява класа JComponents. Ако компонент трябва да бъде прикачен към приложение, JPanel предоставя място. Нека разберем подробно JPanel в следващите раздели.

Конструктори на JPanel в Java

JPanel може да бъде деклариран с помощта на следния синтаксис:

public class JPanel extends JComponent implements Accessible

JPanel няма да бъде завършен без конструктори. По-долу са различните конструктори, използвани в JPanel.

  • JPanel (): Тъй като FlowLayout е мениджър по подразбиране по подразбиране, с FlowLayout се създава нов панел, ако се извиква този конструктор.
  • JPanel (LayoutManager lm): Създава се нов JPanel с мениджъра на оформлението като lm.
  • JPanel (Boolean isDoubleBuffered): Създава се нов JPanel със споменатата буферна стратегия. Стойността може да бъде вярна или невярна въз основа на изискването.
  • JPanel (LayoutManager lm, Boolean isDoubleBuffered): Създаден е нов JPanel с определената lm мениджър на оформление и стратегия за буфериране.

Функции, използвани в JPanel

Някои от често използваните функции в JPanel са:

  • getUIClassID (): Вижте и почувствайте (L&F) името на класа, което прави този компонент, се връща.
  • add (Component comp): Component comp е добавен към посочения контейнер.
  • getAccessibleContext (): Връща се AccessibleContext, свързан с JPanel.
  • getUI (): Вижте и усетете (L&F) обектът, който прави този компонент, се връща.
  • setLayout (LayoutManager lm): Оформлението на контейнера е зададено на зададения мениджър на оформление lm.
  • setUI (PanelUI Pui): Определя се обектът за външен вид (L&F), който прави този компонент.
  • updateUI (): Стойността на текущия вид и усещане (L&F) се нулира със свойството на потребителския интерфейс.
  • paramString (): Връща се стриктно представяне на JPanel.

Как да създадете панел в Java?

Както вече беше обсъдено, JPanel класът е от пакета java.swing и подклас на java.swing.JComponent.

1. JPanel обект се създава, както е споменато по-долу.

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

2. Създайте клас, който се простира от JPanel клас.

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

3. Мениджърът на оформлението може да бъде споменат или не въз основа на изискването.

Тъй като FlowLayout е по подразбиране, в примера можем да използваме някои други оформления.

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

4. Стратегията за двойно буфериране може да се приложи с помощта на конструктора JPanel (boolean isdoubleBufer)

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

След създаването на панел в Java, нека да зададем мениджъра на оформлението за JPanel.

За да зададете оформлението, използвайте метода setLayout (LayoutManager lm).

JPanel jp=new JPanel(new GridBagLayout);

Тук като подредба е зададена GridBagLayout. Ако използваме синтаксиса като

JPanel jp=new JPanel();

Тогава оформлението е зададено като FlowLayout по подразбиране.

Стъпките за добавяне на компоненти в контейнера са обяснени в долния раздел.

Как да добавяте компоненти в Java?

За да добавим компоненти като бутон, JLabel, JTextfield и т.н., ще използваме методът add (). Тъй като за add () има различни версии, кой метод се използва зависи от мениджъра на оформлението на панела.

1. Методът Add (Component cmp) ще се използва за мениджъри на оформления като GridLayout, FlowLayout, SpringLayout, BoxLayout.

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

jp е обект на JPanel.

2. Методът Add (Component cmp, Object obj) ще се използва за мениджъри на оформления като CardLayout, BorderLayout или 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);

Ако използваме GridBagLayout, 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);

Ако използваме CardLayout, се използва методът add (String name, Component cmp). Тук първият аргумент е името за Card.

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

Програма за внедряване на JPanel в Java

Сега, нека да видим програмата за прилагане на прости JPanel в 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();
)
)

Резултат :

В тази програма се създава панел с бутони и текстови полета. За панела е зададен и фон със зелен цвят. Цветовете, размерите, броя на бутоните могат да се променят въз основа на изискването 0n.

Да предположим, че искаме да създадем компонент с BorderLayout. Единствената разлика в синтаксиса е спомената по-долу.

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

Следва примерният изход за горната BorderLayout.

изход:

Заключение - JPanel в Java

JPanel е лек опростен контейнер, който групира набор от компоненти заедно. Оформлението може да бъде добавено към контейнера въз основа на изискването на потребителя. Въпреки че FlowLayout е по подразбиране, се използват и други оформления като BorderLayout, GridBagLayout, CardLayout. В този документ са обяснени различните конструктори и няколко други характеристики на JPanel.

Препоръчителни статии

Това е ръководство за JPanel в Java. Тук обсъждаме как да създадете панел и как да добавяте компоненти в Java заедно с реализацията на кода. Можете също да разгледате следните статии, за да научите повече-

  1. JScrollPane на Java
  2. JTextField в Java
  3. JDialog на Java
  4. JComboBox на Java
  5. JFrame на Java
  6. JLabel на Java