Hallo Zusammen,
ich habe zwei JPanels in einem GridbagLayout. wenn das HauptPanel vergrößert wird, dann soll sich das erste JPanel nicht in seiner Größe ändern. Das Zweite Panel soll den freiwerdenen Platz einnehmen (nur in horizontaler Richtung)
dazu ein minimal Beispiel:
wie Kann ich das bewerkstelligen ?
Gruß
Marz
ich habe zwei JPanels in einem GridbagLayout. wenn das HauptPanel vergrößert wird, dann soll sich das erste JPanel nicht in seiner Größe ändern. Das Zweite Panel soll den freiwerdenen Platz einnehmen (nur in horizontaler Richtung)
dazu ein minimal Beispiel:
Code:
import java.awt.Color;
import java.awt.Dimension;
import java.awt.GridBagConstraints;
import java.awt.GridBagLayout;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.SwingUtilities;
public class Test extends JFrame {
private static final long serialVersionUID = 1L;
private JPanel jContentPane = null;
private JPanel jPanel = null;
/**
* This method initializes jPanel
*
* @return javax.swing.JPanel
*/
private JPanel getJPanel() {
if (jPanel == null) {
jPanel = new JPanel();
jPanel.setLayout(new GridBagLayout());
jPanel.setBackground(Color.black);
GridBagConstraints gbc1 = new GridBagConstraints();
GridBagConstraints gbc2 = new GridBagConstraints();
gbc1.gridx = 1;
gbc1.gridy = 0;
gbc1.weightx = 1;
gbc1.weighty = 1;
gbc2.gridx = 0;
gbc2.gridy = 0;
gbc2.weightx = 1;
gbc2.weighty = 1;
gbc2.anchor = GridBagConstraints.NORTHWEST;
gbc1.anchor = GridBagConstraints.NORTHWEST;
gbc1.fill = GridBagConstraints.HORIZONTAL;
gbc2.fill = GridBagConstraints.HORIZONTAL;
JPanel p1 = new JPanel();
JPanel p2 = new JPanel();
p1.setBackground(Color.green);
p2.setBackground(Color.blue);
p1.setPreferredSize(new Dimension(100, 20));
p2.setPreferredSize(new Dimension(150, 20));
jPanel.add(p1, gbc1);
jPanel.add(p2, gbc2);
}
return jPanel;
}
/**
* @param args
*/
public static void main(String[] args) {
// TODO Automatisch erstellter Methoden-Stub
SwingUtilities.invokeLater(new Runnable() {
public void run() {
Test thisClass = new Test();
thisClass.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
thisClass.setVisible(true);
}
});
}
/**
* This is the default constructor
*/
public Test() {
super();
initialize();
}
/**
* This method initializes this
*
* @return void
*/
private void initialize() {
this.setSize(310, 200);
this.setContentPane(getJContentPane());
this.setTitle("JFrame");
}
/**
* This method initializes jContentPane
*
* @return javax.swing.JPanel
*/
private JPanel getJContentPane() {
if (jContentPane == null) {
jContentPane = new JPanel();
jContentPane.setLayout(new GridBagLayout());
GridBagConstraints gbc = new GridBagConstraints();
gbc.fill = GridBagConstraints.BOTH;
gbc.weightx = 1;
gbc.weighty = 1;
jContentPane.add(getJPanel(), gbc);
}
return jContentPane;
}
} // @jve:decl-index=0:visual-constraint="166,20"
wie Kann ich das bewerkstelligen ?
Gruß
Marz