Så fik jeg lavet noget som ligner - tror jeg
Har kommenteret lidt, hvis der er behov for mere
må du bare spørge.
Men du er nødt til at kigge her, for at se hvordan det bør gøres:
http://java.sun.com/docs/books/tutorial/uiswing/layout/visual.htmlKompiler nedenstående eksempel, det kan bruges - men kan nemt blive 10 gange bedre med GridBagLayout.
import javax.swing.*;
import javax.swing.border.*;
import java.awt.*;
import java.awt.event.*;
public class EksPlayer extends JFrame {
public EksPlayer() {
initComponents();
}
private void initComponents() {
knapPanel1 = new KnapPanel();
kalender1 = new Kalender();
jTextArea1 = new JTextArea();
getContentPane().setLayout(new BoxLayout(getContentPane(), BoxLayout.X_AXIS));
addWindowListener(new WindowAdapter() {
public void windowClosing(WindowEvent evt) {
exitForm(evt);
}
});
// Det er vigtigt at definere størrelsen på knappanelet
// da knapperne adddes panelet i en lang række og når der ikke er
// mere plads på øverste række, tilføjes resterende komponenter
// på næste række o.s.v.
// Hvis knappanelet skal være breddere, er du nødt til også at
// lave knapperne større, ellers vil næste knap flytte op ved
// siden af første knap
knapPanel1.setPreferredSize(new Dimension(90, 190));
getContentPane().add(knapPanel1);
kalender1.setPreferredSize(new Dimension(90, 190));
getContentPane().add(kalender1);
jTextArea1.setBorder(new BevelBorder(BevelBorder.LOWERED));
jTextArea1.setPreferredSize(new Dimension(90, 190));
getContentPane().add(jTextArea1);
pack();
}
private void exitForm(WindowEvent evt) {
System.exit(0);
}
public static void main(String args[]) {
new EksPlayer().show();
}
private JTextArea jTextArea1;
private Kalender kalender1;
private KnapPanel knapPanel1;
}
class KnapPanel extends JPanel {
public KnapPanel() {
initComponents();
}
// FlowLayout er default i JPanels derfor er det
// ikke nødvendigt at sætte Layout
private void initComponents() {
jButton1 = new JButton();
jButton2 = new JButton();
jButton3 = new JButton();
jButton4 = new JButton();
jButton5 = new JButton();
jButton6 = new JButton();
setBorder(new EtchedBorder());
jButton1.setText("Knap 1");
add(jButton1);
jButton2.setText("Knap 2");
add(jButton2);
jButton3.setText("Knap 3");
add(jButton3);
jButton4.setText("Knap 4");
add(jButton4);
jButton5.setText("Knap 5");
add(jButton5);
jButton6.setText("Login");
add(jButton6);
}
private JButton jButton1;
private JButton jButton2;
private JButton jButton3;
private JButton jButton4;
private JButton jButton5;
private JButton jButton6;
}
class Kalender extends JPanel {
public Kalender() {
initComponents();
}
private void initComponents() {
jLabel1 = new JLabel();
// Her bruger jeg BorderLayout for at få Labellen
// til at fylde hele panelet
setLayout(new BorderLayout());
setBorder(new EtchedBorder());
jLabel1.setHorizontalAlignment(javax.swing.SwingConstants.CENTER);
jLabel1.setText("Kalender panel");
add(jLabel1, BorderLayout.CENTER);
}
private JLabel jLabel1;
}