Как перерисовать 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);
- }
- }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д