Hello I am try to get jcomponent from other class.the components are displaying but my frame size changes.
Example.java
public class Example extends JFrame{
static JPanel panel = new JPanel();
static A a = new A();
static B b = new B();
static JComboBox<String> combo = new JComboBox<>();
static String value;
Example(){
setSize(400, 400);
combo.setBounds(450, 140, 50, 20);
combo.addItem("");
combo.addItem("a");
combo.addItem("b");
combo.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
value = (String) combo.getSelectedItem().toString();
if(value.equals("a")){
panel.add(a.getLabel());
panel.remove(b.getLabel());
add(panel);
pack();
}else if(value.equals("b")){
panel.add(b.getLabel());
panel.remove(a.getLabel());
add(panel);
pack();
}
}
});
panel.add(combo);
this.add(panel);
setVisible(true);
}
}
A.java
public class A extends JFrame{
JPanel panel = new JPanel();
JLabel lab = new JLabel("Text");
A(){
lab.setBounds(280, 25, 150, 50);
lab.setVisible(true);
panel.add(lab);
add(panel);
}
public JLabel getLabel(){
return lab;
}
}
B.java
public class B extends JFrame{
JPanel panel = new JPanel();
JButton lab = new JButton("Hello");
B(){
lab.setBounds(380, 25, 250, 50);
lab.setVisible(true);
panel.add(lab);
add(panel);
}
public JButton getLabel(){
return lab;
}
}
Main.java
public class Main {
public static void main(String [] agrs) {
Example ex = new Example();
ex.setVisible(true);
}
}
when I run frame open as defined size but when I select a from combo box the frame size decreases any suggestion so as screen size remain same.