Hallo,
irgendwie habe ich ein Problem beim Erstellen meiner GUI.
So habe ich mir das eig. ungefähr vorgestellt:
Und das ist was bei mir herauskommt:
Ich versteh das nicht. Beim GridBagLayout kann ich doch eig. angeben wie groß die Objekte sein sollen, die ich auf meinem Frame platziere. Aber irgendwie nehmen die scheinbar immer noch die Standardgrößen der Komponenten an.
Hier mal mein Code:
Wäre richtig gut, wenn mich jemand in die richtige Richtung lenken würde.
Und ist es sinnvoll swing und awt Elemente miteinander zu vermischen?
Danke u. Gruß
Julian
irgendwie habe ich ein Problem beim Erstellen meiner GUI.
So habe ich mir das eig. ungefähr vorgestellt:

Und das ist was bei mir herauskommt:

Ich versteh das nicht. Beim GridBagLayout kann ich doch eig. angeben wie groß die Objekte sein sollen, die ich auf meinem Frame platziere. Aber irgendwie nehmen die scheinbar immer noch die Standardgrößen der Komponenten an.
Hier mal mein Code:
Code:
package GUI;
import java.awt.Component;
import java.awt.Container;
import java.awt.Dimension;
import java.awt.GridBagConstraints;
import java.awt.GridBagLayout;
import javax.swing.ImageIcon;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JMenu;
import javax.swing.JMenuBar;
import javax.swing.JMenuItem;
import javax.swing.JTextArea;
import javax.swing.JToolBar;
import javax.swing.JTree;
import javax.swing.tree.DefaultMutableTreeNode;
public class GUIBuild extends JFrame
{
private static final long serialVersionUID = 1L;
private JFrame jif;
private JMenuBar mb;
private Dimension screen = java.awt.Toolkit.getDefaultToolkit().getScreenSize();
public GUIBuild ()
{
jif=new JFrame();
jif.setTitle("Test");
Container c = jif.getContentPane();
GridBagLayout gbl = new GridBagLayout();
c.setLayout(gbl);
//Menü
mb = new JMenuBar();
JMenu t = new JMenu("Datei");
JMenu b = new JMenu("Bearbeiten");
JMenu h = new JMenu("Hilfe");
mb.add(t);
mb.add(b);
mb.add(h);
t.add(new JMenuItem ("Exportieren"));
t.add(new JMenuItem ("Beenden"));
b.add(new JMenuItem ("Bildschirm leeren"));
h.add(new JMenuItem ("Über das Programm") );
jif.setJMenuBar(mb);
jif.setExtendedState(JFrame.MAXIMIZED_BOTH);
jif.setVisible(true);
jif.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
JToolBar toolbar = new JToolBar();
ImageIcon bild1 = new ImageIcon("/home/julian/Desktop/icons/disconnect.png");
ImageIcon bild2 = new ImageIcon("/home/julian/Desktop/icons/disk.png");
ImageIcon bild3 = new ImageIcon("/home/julian/Desktop/icons/photo_add.png");
ImageIcon bild4 = new ImageIcon("/home/julian/Desktop/icons/pencil.png");
ImageIcon bild5 = new ImageIcon("/home/julian/Desktop/icons/printer.png");
ImageIcon bild6 = new ImageIcon("/home/julian/Desktop/icons/user_comment.png");
toolbar.add( new JButton(bild1) );
toolbar.add( new JButton(bild2) );
toolbar.add( new JButton(bild3) );
toolbar.add( new JButton(bild4) );
toolbar.add( new JButton(bild5) );
toolbar.add( new JButton(bild6) );
toolbar.addSeparator();
// x y w h wx hx
addComponent( c, gbl, toolbar, 0, 0, 5, 1, 0.0, 0.0);
addComponent( c, gbl, createTree("Favoriten"), 0, 0, 1, 2, 0.0, 0.0);
addComponent( c, gbl, new JTextArea("daddadda"), 1, 1, 4, 3, 0.0, 0.0);
addComponent( c, gbl, createTree("Techniken"), 0, 3, 1, 3, 0.0, 0.0);
addComponent( c, gbl, new JTextArea("kdkdkdk2"), 1, 4, 4, 2, 0.0, 0.0);
jif.setSize(screen);
jif.setVisible( true );
}
private JTree createTree(String s)
{
DefaultMutableTreeNode root = new DefaultMutableTreeNode(s);
for (int nodeCnt = 0; nodeCnt < 4; nodeCnt++)
{
DefaultMutableTreeNode dmtn = new DefaultMutableTreeNode("Knoten"+nodeCnt);
root.add(dmtn);
for (int leafCnt=1; leafCnt<4; leafCnt++)
dmtn.add(new DefaultMutableTreeNode("Blatt" + (nodeCnt*3 + leafCnt) ) );
}
return (new JTree(root));
}
static void addComponent(Container cont, GridBagLayout gbl, Component c, int x, int y, int width, int height, double weightx, double weighty)
{
GridBagConstraints gbc = new GridBagConstraints();
gbc.fill = GridBagConstraints.BOTH;
gbc.gridx = x;
gbc.gridy = y;
gbc.gridwidth = width; gbc.gridheight = height;
gbc.weightx = weightx; gbc.weighty = weighty;
gbl.setConstraints(c, gbc);
cont.add(c);
}
public static void main (String[] args)
{
new GUIBuild();
}
}
Wäre richtig gut, wenn mich jemand in die richtige Richtung lenken würde.
Und ist es sinnvoll swing und awt Elemente miteinander zu vermischen?
Danke u. Gruß
Julian