Avatar billede lmdthel Nybegynder
28. juli 2005 - 23:45 Der er 7 kommentarer og
1 løsning

Hjælp til GUI layout

Pyhha nu har jeg i mange timer kæmpet med jBuilder og layouts..

Og jeg kan simphelthen ikke få det til at hænge sammen, jo det er pænt lige indtil man resizer vinduet, eller maksimerer det :-(

jeg ahr prøvet med alle layouts uden det store held, og da jeg så troede gridbag ville være det der duede, så gik ejg kol da jeg skulle arbejde med det.. magen til p....

Er det ikke muligt at lave følgende, så det kan resizes bare lidt pænt ?

(copy/past nedenstående ind i notepad)


-----------------------------------------------------------------
|                                |
|                                |
|                                |
|                                |
|                                |
|                                |
|        jScrollpane1    + jTable1            |
|                                |
|                                |
|                                |
|                                |
|                                |
|                                |
|                                |
|                                |
|                                |
|                                |
|                                |
|                                |
|                                |
|                                |
|                                |
-----------------------------------------------------------------
|                                |
|jLabel1    jLabel2                    jLabel3    |
|jComboBox1    jTextfield1    jButton1            |
|                                |
-----------------------------------------------------------------
Avatar billede lmdthel Nybegynder
28. juli 2005 - 23:47 #1
Dammn det rykkede sig lidt, men lidt tab skulle vist få styr på det igen
Avatar billede sondergard Nybegynder
29. juli 2005 - 00:22 #2
Layout kan også være rigtig tricky!!! Nu er det lidt svært at se det nederste, men hvis du vil have mulighed for at justere på den lodrette skildning, så prøv et splitpane. Og ellers er det generelt noget med at lægge layouts oven på layouts - borderlayout og gridlayout f.eks.
Avatar billede lmdthel Nybegynder
29. juli 2005 - 00:26 #3
Tænk jeg troede det her ville være den nemme del ;-)
Avatar billede sondergard Nybegynder
29. juli 2005 - 00:41 #4
Layout i Java tager noget tid :)

Prøv det her:

import javax.swing.*;
import java.awt.*;

public class Frame1 extends JFrame {
  BorderLayout borderLayout1 = new BorderLayout();
  JPanel jPanel1 = new JPanel();
  BorderLayout borderLayout2 = new BorderLayout();
  JPanel jPanel2 = new JPanel();
  JPanel jPanel3 = new JPanel();
  GridLayout gridLayout1 = new GridLayout();
  JSplitPane jSplitPane1 = new JSplitPane();
  JSplitPane jSplitPane2 = new JSplitPane();
  JScrollPane jScrollPane1 = new JScrollPane();
  JTable jTable1 = new JTable();
  JPanel jPanel4 = new JPanel();
  BorderLayout borderLayout3 = new BorderLayout();
  JPanel jPanel5 = new JPanel();
  JPanel jPanel6 = new JPanel();
  JLabel jLabel1 = new JLabel();
  JLabel jLabel2 = new JLabel();
  JLabel jLabel3 = new JLabel();
  GridLayout gridLayout2 = new GridLayout();
  JComboBox jComboBox1 = new JComboBox();
  JTextField jTextField1 = new JTextField();
  JButton jButton1 = new JButton();

  public Frame1() {
    try {
      jbInit();
    }
    catch(Exception ex) {
      ex.printStackTrace();
    }
  }

  void jbInit() throws Exception {
    this.getContentPane().setLayout(borderLayout1);
    jPanel1.setAlignmentX((float) 0.5);
    jPanel1.setLayout(borderLayout2);
    jPanel2.setMinimumSize(new Dimension(150, 150));
    jPanel2.setLayout(gridLayout1);
    jSplitPane1.setMinimumSize(new Dimension(100, 100));
    jSplitPane1.setDividerSize(2);
    jPanel3.setDebugGraphicsOptions(0);
    jPanel3.setLayout(borderLayout3);
    jSplitPane2.setDividerSize(2);
    jLabel1.setText("jLabel1");
    jLabel2.setText("jLabel2");
    jLabel3.setText("jLabel3");
    jPanel5.setLayout(gridLayout2);
    gridLayout2.setColumns(3);
    gridLayout2.setHgap(0);
    gridLayout2.setRows(2);
    jTextField1.setText("jTextField1");
    jButton1.setText("jButton1");
    this.getContentPane().add(jPanel1, BorderLayout.CENTER);
    jPanel1.add(jPanel2,  BorderLayout.CENTER);
    jPanel2.add(jSplitPane1, null);
    jSplitPane1.add(jScrollPane1, JSplitPane.LEFT);
    jSplitPane1.add(jPanel4, JSplitPane.RIGHT);
    jScrollPane1.getViewport().add(jTable1, null);
    jPanel1.add(jPanel3, BorderLayout.SOUTH);
    jPanel3.add(jSplitPane2, BorderLayout.CENTER);
    jSplitPane2.add(jPanel5, JSplitPane.LEFT);
    jPanel5.add(jLabel1, null);
    jPanel5.add(jLabel2, null);
    jPanel5.add(jLabel3, null);
    jPanel5.add(jComboBox1, null);
    jPanel5.add(jTextField1, null);
    jPanel5.add(jButton1, null);
    jSplitPane2.add(jPanel6, JSplitPane.RIGHT);
    jSplitPane1.setDividerLocation(240);
    jSplitPane2.setDividerLocation(240);
  }
}

Det er lige bakset sammen lidt hurtigt
Avatar billede lmdthel Nybegynder
29. juli 2005 - 01:08 #5
tak, det vil jeg bygge lidt videre på, men nu er det vist sengetid.. kan lige nå 3 timer ;-)
Avatar billede sondergard Nybegynder
01. august 2005 - 10:38 #6
Kunne du bruge det til noget?
Avatar billede lmdthel Nybegynder
02. august 2005 - 19:07 #7
Jeg startede godt nok forfra, men det hjalp mig til at forstå konceptet, og jeg fik lavet noget som faktisk var pænt.. 

så læg du bare et svar :-)
Avatar billede sondergard Nybegynder
02. august 2005 - 19:14 #8
ok :)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester