Hallo Zusammen,
zuerst mal möchte ich alle im Forum grüßen --> erster Beitrag
Ich hoffe, dass mir jemand mit meiner Frage weiterhelfen kann. Ich habe ein eigene Frame Klasse mit einem BorderLayout erstellt. In North und Center sind wurde ein JPanel platziert. Nun möchte ich von außen ein neues JPanel in die bereits bestehenden einfügen, was jedoch nicht funktioniert. Instanziiere ich die neuen JPanel in der selben Klasse und füge sie dem gewünschten Panel hinzu, funktioniert es ohne Probleme (im Konstruktor).
Besten Dank für eure Hilfe!
zuerst mal möchte ich alle im Forum grüßen --> erster Beitrag
Ich hoffe, dass mir jemand mit meiner Frage weiterhelfen kann. Ich habe ein eigene Frame Klasse mit einem BorderLayout erstellt. In North und Center sind wurde ein JPanel platziert. Nun möchte ich von außen ein neues JPanel in die bereits bestehenden einfügen, was jedoch nicht funktioniert. Instanziiere ich die neuen JPanel in der selben Klasse und füge sie dem gewünschten Panel hinzu, funktioniert es ohne Probleme (im Konstruktor).
Java:
public class StartFrame extends JFrame {
private final static String PROGRAMTITLE = "easyDiet";
private JPanel m_mainPanel;
private JTabbedPane m_tabbedPane;
private JLabel m_status;
private JPanel m_header;
public StartFrame() {
this.setLayout(new BorderLayout());
this.setTitle(PROGRAMTITLE);
//Set status panel
m_status = new JLabel("Statustext");
m_status.isOpaque();
m_status.setBackground(Color.white);
m_status.setBorder(new EtchedBorder());
this.add(m_status, BorderLayout.SOUTH);
//Set header panel
m_header = new JPanel();
m_header.setSize(200, 200);
m_header.setBackground(Color.white);
this.add(m_header, BorderLayout.NORTH);
m_header.add(new TopPanel());
//set center panel
m_mainPanel = new JPanel();
m_mainPanel.setBackground(Color.white);
this.add(m_mainPanel, BorderLayout.CENTER);
//Test method call
//addLabel(new JLabel("testtesttest"));
//addCenterPanel(new HomePanel(null));
this.setBackground(Color.white);
this.setMinimumSize(new Dimension(1000, 700));
this.isOpaque();
this.setVisible(true);
this.validate();
this.setLocationRelativeTo(null);
addWindowListener(new WindowAdapter() {
@Override
public void windowClosing(WindowEvent e) {
System.exit(0);
}
});
}
protected void addLabel(JLabel label) {
if (label != null) {
m_mainPanel.add(label);
label.setVisible(true);
this.validate();
this.repaint();
}
}
/**
* Adds a given panel to the frame
* @param newPanel the new panel to display
*/
public void addCenterPanel(JPanel newPanel) {
if (newPanel != null) {
m_mainPanel.add(newPanel);
newPanel.setVisible(true);
newPanel.requestFocusInWindow();
this.validate();
this.repaint();
}
}
public void addHeaderPanel(JPanel newPanel) {
if (newPanel != null) {
m_header.add(newPanel);
newPanel.setVisible(true);
this.validate();
this.repaint();
}
}
Besten Dank für eure Hilfe!