[java] GridBagLayout wil niet..

Pagina: 1
Acties:

  • jurri@n
  • Registratie: Maart 2000
  • Laatst online: 09:36
Ik heb het volgende stukje code:
Java:
1
2
3
4
        final JInternalFrame editProjectWindow = new JInternalFrame("Bewerk project",false,true);
        editProjectWindow.setFrameIcon(logo);
        GridBagLayout gbLayout = new GridBagLayout();
        editProjectWindow.getContentPane().setLayout(gbLayout);


Alleen de laatse regel gaat steeds fout, hierbij krijg ik de volgende fout:
java.lang.IllegalArgumentException: cannot add to layout: constraints must be a GridBagConstraint
Volgens het boek wat ik hier gebruik en de API zou het toch moeten werken. Ik heb ook geprobeerd aan setlayout() een GridBagConstraint mee te geven, maar ook dat vond 'ie niet fijn..

Wat doe ik fout?

[ Voor 0% gewijzigd door jurri@n op 18-10-2002 10:20 . Reden: Typo ]


Verwijderd

als ik het zo goed zie heb je je internalframepje final gemaakt.
dat betekent dat hij niet meer veranderd kan worden.
als je dat eens weg zou halen denk ik dat het beter gaat.

succes :)

  • jurri@n
  • Registratie: Maart 2000
  • Laatst online: 09:36
Heb meer functies en InternalFrames en die kan ik gewoon veranderen ondanks dat ze final zijn (mits je de funcies hiervoor gebruikt en niet probeert variablen in je class aan te spreken).

Heb het toch even geprobeerd, maar het weghalen van final werk ook niet.

  • reskobon
  • Registratie: November 2001
  • Laatst online: 28-08 13:24
Hum heb even een projectje gemaakt maar bij mij werkt hij gewoon hoor. Heb je de variabele logo wel aangemaakt? zo van Icon logo;

Leeg


  • jurri@n
  • Registratie: Maart 2000
  • Laatst online: 09:36
Ja, logo is aangemaakt... die geeft ook geen probleem, het gaan om dit GridBag

[ Voor 0% gewijzigd door jurri@n op 18-10-2002 10:47 . Reden: Typo ]


  • reskobon
  • Registratie: November 2001
  • Laatst online: 28-08 13:24
Hij runt bij gewoon hoor al is het wel vreemd dat hij geen mooi schermpje laat zien. Ik krijg geen Exception naar me hoofd.

Leeg


  • jurri@n
  • Registratie: Maart 2000
  • Laatst online: 09:36
Welke versie van de SDK gebruik jij? Hier Wil 'ie namelijk echt niet met J2SDK 1.4.0_02 onder Windows 98

[ Voor 0% gewijzigd door jurri@n op 18-10-2002 11:06 . Reden: OS toegevoegd ]


  • reskobon
  • Registratie: November 2001
  • Laatst online: 28-08 13:24
Oh weet neit of dat verschil maakt maar die van mij is J2SDK 1.4.1

Leeg


  • jurri@n
  • Registratie: Maart 2000
  • Laatst online: 09:36
reskobon schreef op 18 oktober 2002 @ 11:07:
Oh weet neit of dat verschil maakt maar die van mij is J2SDK 1.4.1
Ik ga gewoon proberen of het uitmaakt...

  • reskobon
  • Registratie: November 2001
  • Laatst online: 28-08 13:24
Wat wel een beetje vreemd is dat ik nis op het scherm krijg maar hij runt hem wel gewoon :?

Leeg


  • jurri@n
  • Registratie: Maart 2000
  • Laatst online: 09:36
Nieuwe versie maakt niets uit... Nee, je krijgt idd niets op het scherm, maar als je dan naar je console kijkt, zie de de foutmelding.

  • reskobon
  • Registratie: November 2001
  • Laatst online: 28-08 13:24
Ok hier mijn code dan, in de console heb ik ook geen foutmeldingen hoor :?

Java:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
package untitled1;

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

/**
 * <p>Title: </p>
 * <p>Description: </p>
 * <p>Copyright: Copyright (c) 2002</p>
 * <p>Company: Bla</p>
 * @author Rob Sonke
 * @version 1.0
 */

public class Frame1 extends JFrame {
  Icon icon;
  GridBagLayout gbLayout = new GridBagLayout();

  public static void main(String args[]){

  }

  public Frame1() {
    try {
      jbInit();
    }
    catch(Exception e) {
      e.printStackTrace();
    }
  }
  private void jbInit() throws Exception {
    this.setSize(300, 300);
    this.show();

    final JInternalFrame editProjectWindow = new JInternalFrame("Bewerk project",false,true);
    editProjectWindow.setFrameIcon(icon);
    editProjectWindow.getContentPane().setLayout(gbLayout);
    this.add(editProjectWindow);
  }
}

Leeg


  • jurri@n
  • Registratie: Maart 2000
  • Laatst online: 09:36
Ik zal het je besparen om mijn 1000 regels code te posten :) (heb slechts de functie gepost die niet wilde werken).

Vreemd genoeg zie ik nog steeds de fout niet...

  • jurri@n
  • Registratie: Maart 2000
  • Laatst online: 09:36
Dan de HELE funcite maar eens posten... de funcite is nog lang niet af (moet een heel venster worden om gegevens te editen, maar ik zou al blij zijn als er een venster met deze velden)

Java:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
    public void editProjectWindow(int projectnumber) {
        final JInternalFrame editProjectWindow = new JInternalFrame("Bewerk project",false,true);
        editProjectWindow.setFrameIcon(logo);
        editProjectWindow.getContentPane().setLayout(gbLayout);
        String types[] = {"ADV","AUX","BLO","COM","DRY","FAN","FE","FIL","GAR","GEN","LUB","MAN","MIS","MIX","PIP","PUM","RE","RM","SP","TRA","TSP"};
        JTextField projectnumberTF = new JTextField();
        JComboBox typeCB = new JComboBox(types);
        // standaard in ComboBox instellen
        JTextField customernumberTF = new JTextField();
        JTextArea  descriptionTA = new JTextArea();
        descriptionTA.setLineWrap(true);
        descriptionTA.setWrapStyleWord(true);
        JScrollPane descriptionSP = new JScrollPane(descriptionTA);
        JLabel customernumberL = new JLabel("Klantnummer");
        gbLayout.setConstraints(customernumberL,pos(0,0,1,1));
        editProjectWindow.getContentPane().add(customernumberL);
        gbLayout.setConstraints(customernumberTF,pos(0,1,1,1));
        editProjectWindow.getContentPane().add(customernumberTF);

        JButton okButton = new JButton("Opslaan");
        editProjectWindow.getContentPane().add(okButton,BorderLayout.SOUTH);
        editProjectWindow.setOpaque(true);
        desktop.add(editProjectWindow);
        editProjectWindow.setSize(300,250);
        editProjectWindow.show();
        editProjectWindow.toFront();
    }

  • Confusion
  • Registratie: April 2001
  • Laatst online: 01-07 21:46

Confusion

Fallen from grace

GridBagLayout is ook wel een erg vervelende layout. De meeste auteurs raden aan hem niet te gebruiken. Ik stapel gewoon lagen panels met verschillende layouts om hetzelfde te bewerkstelligen.

Wie trösten wir uns, die Mörder aller Mörder?


  • jurri@n
  • Registratie: Maart 2000
  • Laatst online: 09:36
Fused schreef op 18 oktober 2002 @ 13:45:
Ik stapel gewoon lagen panels met verschillende layouts om hetzelfde te bewerkstelligen.
Heb ik ook geprobeerd, maar het resultaat was niet wat ik wilde... En dat ***-ding blijft alles zelf re-sizen :(

  • momania
  • Registratie: Mei 2000
  • Laatst online: 30-08 22:41

momania

iPhone 30! Bam!

Fused schreef op 18 oktober 2002 @ 13:45:
GridBagLayout is ook wel een erg vervelende layout.
Ik vind het juist de beste die er is qua LayoutManagers.
Het vervelende alleen is dat je onwijs goed op de constraints moet
letten van elk Object.
Maar als je van te voren de GUI ff op papier uitzet en dan goed
over de weigths en paddings etc. nadenkt, kan je je GUI precies zo
maken als dat je em in gedachte had, zonder al te veel extra
Panels te gebruiken

Neem je whisky mee, is het te weinig... *zucht*

Pagina: 1