[java] JTextArea net zo groot als de container

Pagina: 1
Acties:

  • Invalid
  • Registratie: September 2001
  • Niet online
Ik ben al een hele tijd bezig om een JTextArea even groot te krijgen als de container (in dit geval een JScrollPane die weer in een JPanel zit) waar hij in zit. Maar dit wil maar niet lukken. Het is dus de bedoeling dat als ik het venster groter maak hij ook groter moet worden.

  • Alarmnummer
  • Registratie: Juli 2001
  • Laatst online: 09-07-2024

Alarmnummer

-= Tja =-

Ik maak mijn scrollpane als volgt aan:
JTextArea t = new JTextArea();
JScrollPane p = new JScrollPane(t);

dan zou het moeten werken.

[edit]
ik maak dus uit je verhaal op dat de scrollpane wel mee sized maar de textarea daarin niet? Als dit niet zo is (dus de scrollpane sized niet mee). Dan moet je de panel even een borderlayout geven, en dan die scrollPane op de center toevoegen.

Verwijderd

Ik neem dat je JBuilder gebruikt. Construeer je je JTextArea dmv de designer of dmv "hard-code"? In het laatste geval, lijkt het me beter dat je ff wat source post.

  • Invalid
  • Registratie: September 2001
  • Niet online
Verwijderd schreef op 06 oktober 2002 @ 22:28:
Ik neem dat je JBuilder gebruikt. Construeer je je JTextArea dmv de designer of dmv "hard-code"? In het laatste geval, lijkt het me beter dat je ff wat source post.
Euh, nee, ik doe het gewoon op de bikkel methode en codeer de gui helemaal zelf :)

Hier dan een deel van de code:

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
class ChannelTabbedPane extends JTabbedPane {   
    public ChannelTabbedPane(IrcClient ircClient) {
        addTab("Server", new JScrollPane(New ServerViewPanel()));
    }
}

public class ServerViewPanel extends JPanel {
    JTextArea textArea;
    
    public ServerViewPanel() {
        textArea = new JTextArea();
        textArea.setLineWrap(true);
        textArea.setWrapStyleWord(true);
        textArea.setEditable(false);
        add(textArea);
    }
}

De JTabbedPane is net zo groot als het JFrame. De TextArea in ServerViewPanel moet daarin de maximale grootte aannemen.

  • Alarmnummer
  • Registratie: Juli 2001
  • Laatst online: 09-07-2024

Alarmnummer

-= Tja =-

Hmmzz.. jij stop die JTextArea eerst in een Panel (ServerViewPanel) en dan stop jij die panel weer in een JScrollPane :? Volgens mij gaat er daar iets mis :)

En verder moet je ook op de juiste manier toevoegen aan die JPanel. Een JPanel heeft geloof ik default een BorderLayout, dus je moet ook op die manier toevoegen:

panel.add(new JScrollPane(textArea),BorderLayout.CENTER);

  • Invalid
  • Registratie: September 2001
  • Niet online
Het probleem is dat je aan die TextArea alleen het aantal kolommen en rijen mee kunt geven...

  • Alarmnummer
  • Registratie: Juli 2001
  • Laatst online: 09-07-2024

Alarmnummer

-= Tja =-

Ok, maar wat heeft dat hier mee te maken? Als jij die JTextArea in een JScrollPane plaatst, en die ScrollPane plaatst je op de juiste manier in een JPanel, dan zal dus ScrollPane die hele JPanel opvullen, en de JTextArea de hele JScrollPane.

  • KompjoeFriek
  • Registratie: Maart 2001
  • Laatst online: 02-01 05:18

KompjoeFriek

Statsidioot

Iedeetjes:

jouJTextArea.setBounds(x,y,breedte,hoogte);

of

setLayout(null);

misschien heb je er wat aan...

WhatPulse! - Rosetta@Home - Docking@Home


  • Alarmnummer
  • Registratie: Juli 2001
  • Laatst online: 09-07-2024

Alarmnummer

-= Tja =-

Windoos-vernieler schreef op 07 oktober 2002 @ 21:46:
Iedeetjes:

jouJTextArea.setBounds(x,y,breedte,hoogte);

of

setLayout(null);

misschien heb je er wat aan...
Dat zijn niet zulke geweldige ideeen :) Je moet eigelijk die layout manager niet naar de vernieling helpen omdat je het scherm eigelijk niet meer kan resizen ed (en je weet hoe irritant dat is). Ik werk zelf altijd met layout managers, en hiervoor zou hij echt perfect een BorderLayout kunnen gebruiken en het component op de center toevoegen. Hierdoor krijgt dat component alle ruimte die de parent panel inneemt en bij het resizen van de parent, resized de child ook gewoon mee.

Hij moet gewoon even op een juiste manier code schrijven. Antwoord heb ik al gegeven.

  • KompjoeFriek
  • Registratie: Maart 2001
  • Laatst online: 02-01 05:18

KompjoeFriek

Statsidioot

Sorry, is altijd heel handig om layouts te gebruiken, en ik raad het je ook aan. ik heb 't alleen nooit aangeleerd, en merk nou dat dat heel lastig is (ik programmeer 't resizen er zelf in... hoop moeite voor nix)

WhatPulse! - Rosetta@Home - Docking@Home


  • Alarmnummer
  • Registratie: Juli 2001
  • Laatst online: 09-07-2024

Alarmnummer

-= Tja =-

Windoos-vernieler schreef op 07 oktober 2002 @ 22:02:
Sorry, is altijd heel handig om layouts te gebruiken, en ik raad het je ook aan. ik heb 't alleen nooit aangeleerd, en merk nou dat dat heel lastig is (ik programmeer 't resizen er zelf in... hoop moeite voor nix)
Je bent niet de enigste hoor :) Het 1e wat ik vroeger deed was setLayout(null), en voor schermen die niet willen resizen is dat ook niet zo`n ramp. Maar ik hou van schermen die wel resizen (windows zuigt in dat opzicht ook regelmatig) en dan zijn LayoutManagers erg handig. Laat het systeem maar zoveel mogelijk werk voor je verrichten ipv dat je het zelf gaat doen, tenslotte zijn computers daarvoor gemaakt :)

Verwijderd

Zoals alarmnummer al zei, BorderLayout zorgt ervoor dat al je componenten de volledige ruimte gebruiken. Dan kun je op t contentpane dingen adden (south, west, north etc en andere posities.) volgens mij kun je nu geen x,y posities meer opgeven want de layout manager Borderlayout negeert deze (voor zo ver ik weet)

  • The - DDD
  • Registratie: Januari 2000
  • Laatst online: 17-08 22:44
Leer werken met de GridBagLayout en je zweert er bij. ;)
Pagina: 1