/ / Znovu načítať JComponent - java, swing, awt

Znovu načítať JComponent - java, swing, awt

Ako môžem znovu načítať komponent v JFrame z vlastnej triedy, akoby som ho musel odstrániť, vytvoriť nový a pridať ho späť?

Rovnako ako this.repaint(), ale v skutočnosti ju rekonštruuje, ak je to možné.

odpovede:

0 pre odpoveď č. 1

Najprv by ste nemali pridávať JComponent priamo na rámček, bolo by lepšie, keby ste pridali JPanel na JFrame a potom pridať komponenty na ne.

Ak chcete nahradiť komponent na zariadení JPanel, môžete použiť nasledujúce funkcie.

jPanel.remove(comp);
or
jPanel.removeAll();

jPanel.add(comp);
jPanel.revalidate();
jpanel.repaint();

Ak chcete pracovať len s JFrame, potrebujete zmeniť veľkosť rámčeka trochu po výmene komponentu na obnovenie rámca pomocou jf.setSize (x, y).

import javax.swing.*;
import java.util.concurrent.*;
public class FrameReplaceComp {
public static void main(String[] args) throws Exception {

JFrame frame = new JFrame("Hello swing");
final JLabel label = new JLabel("Label 1");
frame.add(label);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setSize(300, 100);
frame.setVisible(true);

Thread.sleep(1000);

final JLabel label1 = new JLabel("Label 2");
frame.remove(label);
frame.add(label1);
frame.setSize(300,101);

}
}