Hiho ^^
Ich habe im Moment ein Projekt laufen für meine Maturaarbeit; grafische Umsetzung des N-Damenproblems mit Swing. Anfangs verwendete ich dafür ein BorderLayout. Da dieses jedoch ziemlich stark eingeschränkt ist, habe ich mir die Layout Manager angeschaut und mich für das GridBagLayout entschieden, da man damit am meisten machen kann.
Ich dachte eigentlich, dass ich die Theorie verstanden hätte, jedoch werden meine JPanels nicht so angeordnet wie ich das gerne haben möchte -.-
Ich denke, dass ich etwas mit den Membervariabeln was falsch mache. Aber ich verstehe nicht "was" ich falsch mache.
Wäre sehr dankbar um eure Hilfe
So sollte es ungefähr aussehen (bitte nur auf die JPanels achten, die Inhalte sind im Code oberhalb nicht drin, da das nur ein Versuch ist, um das Layout zu testen ;-)
Ich habe im Moment ein Projekt laufen für meine Maturaarbeit; grafische Umsetzung des N-Damenproblems mit Swing. Anfangs verwendete ich dafür ein BorderLayout. Da dieses jedoch ziemlich stark eingeschränkt ist, habe ich mir die Layout Manager angeschaut und mich für das GridBagLayout entschieden, da man damit am meisten machen kann.
Ich dachte eigentlich, dass ich die Theorie verstanden hätte, jedoch werden meine JPanels nicht so angeordnet wie ich das gerne haben möchte -.-
Ich denke, dass ich etwas mit den Membervariabeln was falsch mache. Aber ich verstehe nicht "was" ich falsch mache.
Wäre sehr dankbar um eure Hilfe
Code:
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import javax.swing.border.*;
public class NDamenProblem
extends JFrame
{
Container c;
JPanel nChoicePanel; //Hier wird n gewählt
JPanel optionPanel; //Hier können zusätzliche Optionen gewählt werden
JPanel solutionPanel; //Hier werden die Daten (z.B. Anzahl Möglichkeiten) ausgegeben
JPanel chessPanel;
NDamenProblem() {
c = getContentPane();
GridBagLayout gbl = new GridBagLayout();
c.setLayout(gbl);
GridBagConstraints gbc = new GridBagConstraints();
nChoicePanel = new JPanel();
nChoicePanel.setBorder(new TitledBorder("n Choice"));
gbc = makegbc(0,0,5,1);
gbc.weightx = 100;
gbc.weighty = 100;
gbc.fill = GridBagConstraints.BOTH;
gbl.setConstraints(nChoicePanel, gbc);
optionPanel = new JPanel();
optionPanel.setBorder(new TitledBorder("Options"));
gbc = makegbc(4,1,1,7);
gbc.weightx = 100;
gbc.weighty = 100;
gbc.fill = GridBagConstraints.BOTH;
gbl.setConstraints(optionPanel, gbc);
solutionPanel = new JPanel();
solutionPanel.setBorder(new TitledBorder("Solutin Panel"));
gbc = makegbc(0,8,5,1);
gbc.weightx = 100;
gbc.weighty = 100;
gbc.fill = GridBagConstraints.BOTH;
gbl.setConstraints(solutionPanel, gbc);
chessPanel = new JPanel();
chessPanel.setBorder(new TitledBorder("Chess"));
gbc = makegbc(0,1,4,7);
gbc.weightx = 100;
gbc.weighty = 100;
gbc.fill = GridBagConstraints.BOTH;
gbl.setConstraints(chessPanel, gbc);
c.add(nChoicePanel);
c.add(optionPanel);
c.add(solutionPanel);
c.add(chessPanel);
}
private GridBagConstraints makegbc (int x, int y, int width, int height){
GridBagConstraints gbc = new GridBagConstraints();
gbc.gridx = x;
gbc.gridy = y;
gbc.gridwidth = width;
gbc.gridheight = height;
gbc.anchor = GridBagConstraints.NORTHWEST;
gbc.insets = new Insets(1,1,1,1);
return gbc;
}
public static void main(String[] args) {
Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize();
NDamenProblem fenster = new NDamenProblem();
fenster.setTitle("N-Damen Problem");
fenster.setSize(700,600);
fenster.setResizable(true);
fenster.setVisible(true);
fenster.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
}
So sollte es ungefähr aussehen (bitte nur auf die JPanels achten, die Inhalte sind im Code oberhalb nicht drin, da das nur ein Versuch ist, um das Layout zu testen ;-)
