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