kloakenratte
Grünschnabel
Hallo!
Also, hab einen JFrame, in dem ich mehrere Panels hab, zb. SearchPanel und die will ich eben über das Menü entweder visible setzen oder invisible, je nachdem welcher ausgewählt wird zb. bei Suchen wird SearchPanel visible gesetzt und das EditPanel und DeletePanel auf invisible. Je nachdem wird auch mit this.setContentPane(..) gewechselt.
Das klappt ja auch ganz gut.
Auf den Panels befinden sich jeweils Components (Combobox, Textfield, Label, etc.) und die setze ich an die richtige Position bzw. weise die Größe bei der Fkt. paintComonents(). Wird die Größe des JFrame verändert, werden im Eventhandler componentResized(..) die Components neu gesetzt. Mein Problem ist jetzt, dass die Panels zu der zeit immer die falsche Größe haben und deshalb die Components falsch gesetzt sind. Ich geh doch richtig in der Annahme, dass die Panels, wenn sie als ContentPane gesetzt sind, die neue Größe des JFrames mitbekommen sollten. Vor allem das JScrollPane auf dem SearchPanel macht mir Schwierigkeiten, wenn ich die Größe ändere bzw. ändern will.
Wär für jegliche Anregungen dankbar!
Also, hab einen JFrame, in dem ich mehrere Panels hab, zb. SearchPanel und die will ich eben über das Menü entweder visible setzen oder invisible, je nachdem welcher ausgewählt wird zb. bei Suchen wird SearchPanel visible gesetzt und das EditPanel und DeletePanel auf invisible. Je nachdem wird auch mit this.setContentPane(..) gewechselt.
Das klappt ja auch ganz gut.
Auf den Panels befinden sich jeweils Components (Combobox, Textfield, Label, etc.) und die setze ich an die richtige Position bzw. weise die Größe bei der Fkt. paintComonents(). Wird die Größe des JFrame verändert, werden im Eventhandler componentResized(..) die Components neu gesetzt. Mein Problem ist jetzt, dass die Panels zu der zeit immer die falsche Größe haben und deshalb die Components falsch gesetzt sind. Ich geh doch richtig in der Annahme, dass die Panels, wenn sie als ContentPane gesetzt sind, die neue Größe des JFrames mitbekommen sollten. Vor allem das JScrollPane auf dem SearchPanel macht mir Schwierigkeiten, wenn ich die Größe ändere bzw. ändern will.
Wär für jegliche Anregungen dankbar!
Code:
imports ...
public class SearchPanel extends JPanel
{
private JPanel pnl_search = null;
private JComboBox cbx_search = null;
...
public SearchProduct(ActionListener listener, Color bckgColor)
{
this.setBackground(bckgColor);
this.setLayout(null);
this.setName("SearchPanel");
this.pnl_search = new JPanel();
this.pnl_search.setBackground(new Color(70,130,180));
this.pnl_search.setBorder(BorderFactory.createEtchedBorder());
this.cbx_search = new JComboBox(ComboBoxItems.getCBItems()); // Vector mit Items
this.cbx_search.setEditable(false);
this.pnl_search.add(this.cbx_search);
...
}
public void paintComponents()
{
try
{
this.pnl_search.setLocation(20, 20);
this.pnl_search.setSize(this.getWidth() - 40, 61);
this.cbx_search.setLocation(20, 21);
this.cbx_search.setSize(200,19);
this.cbx_search.setMinimumSize(new Dimension(200,19));
this.cbx_search.setMaximumSize(new Dimension(200,19));
...
}
catch(Exception ex)
{
ErrorLogging.GenerateErrorLog(ex);
}
}
}
public class Pgm extends JFrame implements ComponentListener
{
private SearchPanel search = null;
public Pgm()
{
...
search = new SearchPanel(...);
this.search.paintComponents();
this.search.setVisible(true);
this.setContentPane(search);
}
public static void main(String[] args)
{
// TODO Automatisch erstellter Methoden-Stub
Pgm progi = new Pgm();
progi.setVisible(true);
}
public void componentResized(java.awt.event.ComponentEvent e)
{
this.search.paintComponents();
....
}
}