Как перерисовать JPanel в Java Swing

Узнай цену своей работы

Формулировка задачи:

привет. как перерисовать содержимое JPanel? например на панели1 есть лейблы,кнопки и филды. а на панели2 есть кнопка при нажатии которой с первой панели будет все удаляться и рисоваться новые кнопки и тд. можно ли такое реализовать?

Решение задачи: «Как перерисовать JPanel в Java Swing»

textual
Листинг программы
package main;
 
import javax.swing.*;
import java.awt.*;
 
public class Main {
 
    public static void main(String[] args) {
        JFrame frame = new JFrame("My Frame");
        frame.setLayout(new FlowLayout());
 
        JPanel panel1 = new JPanel();
        panel1.setLayout(new FlowLayout());
        panel1.setBorder(BorderFactory.createEtchedBorder());
 
        JPanel panel2 = new JPanel();
        panel2.setLayout(new FlowLayout());
        panel2.setBorder(BorderFactory.createEtchedBorder());
 
        JLabel label1 = new JLabel("Label 1");
        JLabel label2 = new JLabel("New label. Label 2");
 
        JButton button = new JButton("Change");
        button.addActionListener(e -> {
            panel1.removeAll();
 
            panel1.add(label2);
            frame.repaint();
            frame.revalidate();
            frame.pack();
            frame.setLocationRelativeTo(null);
        });
 
        panel1.add(label1);
        panel2.add(button);
 
        frame.add(panel1);
        frame.add(panel2);
 
        frame.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
        frame.pack();
        frame.setLocationRelativeTo(null);
        frame.setVisible(true);
    }
}

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

11   голосов , оценка 4.091 из 5