Вступ до 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 (булева isdoubleBuffered)

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?

Для того, щоб додати такі компоненти, як button, 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, GridBagConstraintsоб'єкт повинен бути переданий як другий аргумент.

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