возможно, это простая ошибка, но я не могу понять, что не так.У меня есть класс, который создает рамку (MainFrame) и использует метод для изменения панелей.У меня есть другой класс, у которого есть панель, описанная в нем.Однако почему-то я вижу только рамку без панели.Может ли кто-нибудь помочь мне здесь?Я новичок в MigLayout, и было бы здорово, если бы вы могли объяснить мою ошибку ..
public class MainFrame extends JFrame
{
private JPanel panel;
//getting dimensions
public static Dimension dim = Toolkit.getDefaultToolkit().getScreenSize() ;
public MainFrame()
{
getContentPane().setLayout(new MigLayout());
setDefaultCloseOperation(DISPOSE_ON_CLOSE);
this.setTitle("Title");
this.setLocation((int)dim.getWidth()/3,(int)dim.getHeight()/4);
this.setSize(500, 500);
setNewPanel(new MainWindowPanel());
this.validate();
}
public final void setNewPanel(JPanel newPanel)
{
//to change the panel, old one has to be deleted
if (panel != null) remove(panel);
getContentPane().setLayout(new MigLayout());
add(newPanel);
//pack();
panel = newPanel;
this.setVisible(true);
}
}
Класс моей панели
public class MainWindowPanel extends JPanel
{
//Label
JLabel greeting = new JLabel("Welcome:");
//Buttons
JButton helpButton = new JButton("Help?");
public MainWindowPanel()
{
// the layout of the main screen
JPanel p = new JPanel(new MigLayout("fill", "[center]"));
p.setBackground(Color.lightGray);
p.add(greeting, "skip 1, gaptop 40, wrap");
greeting.setFont(times20);
p.add(helpButton, "bottom, span, tag help");
}
}
Спасибо!