Avatar billede javanewbie Nybegynder
02. marts 2005 - 10:47 Der er 6 kommentarer og
1 løsning

JTextArea - auto resize?

Jeg har et JTextArea, som jeg fylder noget text i fra en database. Er det muligt at lave en resize på det textarea, så det bliver stort nok til at vise hele teksten uden at det er nødvendigt at scrolle? Den skal bare ikke altid være meget stor. Kun stor nok til at vise hele teksten.

Hvis bare jeg kan justere højden, er jeg glad. :-)
Avatar billede kalp Novice
02. marts 2005 - 10:55 #1
Hvis du ved hvor mange linjer der kan være i din textarea så kan du evt prøve at tælle de linjer du vil smide ind i den... er der for mange får må du få den til at udvide textarea med et hvis antal linjer.. måske kan jeg selv finde ud af det hehe.. så kan jeg lige vise hvordan.. måske har en anden noget kode klar.
Avatar billede kalp Novice
02. marts 2005 - 11:00 #2
jeg laver lige et eksempel.. må jeg da kunne finde ud af;o)
Avatar billede kalp Novice
02. marts 2005 - 11:18 #3
Ikke gennemtested.. måske lidt fejl i hehe.. men lige netop i de tilfælde jeg afprøvede det med virkede det fint


package mypackage;
import javax.swing.JFrame;
import java.awt.Dimension;
import javax.swing.JTextArea;
import java.awt.Rectangle;

public class Frame1 extends JFrame
{
  private JTextArea jTextArea1 = new JTextArea();

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

  }

  private void jbInit() throws Exception
  {
    this.getContentPane().setLayout(null);
    this.setSize(new Dimension(400, 421));
    jTextArea1.setText("jTextArea1");
    jTextArea1.setBounds(new Rectangle(65, 55, 235, 50));
    this.getContentPane().add(jTextArea1, null);
    int height = 50;
    int counter = 0;
    String tekst = "asdasdasdasdasda\nnasdaskdasd\nnasdasdasd\nnasdasdasdsad\nasdasdasdas\nasdasdasd\nasdaslkdmalknmdlkasd\naksmdasklmdlkasd\nasdkasdpasdasd";
    for (int i = 0; i < tekst.length(); i++)
    {
    if(tekst.charAt(i) == '\n')
    counter++;
    }
    if(counter > 3)
    {
    counter = 20 * counter;
    jTextArea1.setBounds(new Rectangle(65, 55, 235, counter));
    }
    jTextArea1.setText(tekst);
     
  }
}
Avatar billede kalp Novice
02. marts 2005 - 11:18 #4
og til at starte det med


package mypackage;
import java.awt.Frame;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
import javax.swing.UIManager;
import java.awt.Dimension;
import java.awt.Toolkit;

public class Application1
{
  public Application1()
  {
    Frame frame = new Frame1();
    Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize();
    Dimension frameSize = frame.getSize();
    if (frameSize.height > screenSize.height)
    {
      frameSize.height = screenSize.height;
    }
    if (frameSize.width > screenSize.width)
    {
      frameSize.width = screenSize.width;
    }
    frame.setLocation((screenSize.width - frameSize.width) / 2, (screenSize.height - frameSize.height) / 2);
    frame.addWindowListener(new WindowAdapter()
      {
        public void windowClosing(WindowEvent e)
        {
          System.exit(0);
        }
      });
    frame.setVisible(true);
  }

  /**
  *
  * @param args
  */
  public static void main(String[] args)
  {
    try
    {
      UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());
    }
    catch(Exception e)
    {
      e.printStackTrace();
    }

    new Application1();
  }
}
Avatar billede kalp Novice
02. marts 2005 - 11:18 #5
ps. brugte ikke denne til noget alligevel

int height = 50;
Avatar billede kalp Novice
02. marts 2005 - 11:59 #6
int counter = 50;
    String tekst = "asdasdasdasdasda\nnasdaskdasd\nnasdasdasd\nnasdasdasdsad\nasdasdasdas\nasdasdasd\nasdaslkdmalknmdlkasd\naksmdasklmdlkasd\nasdkasdpasdasd";
    for (int i = 0; i < tekst.length(); i++)
    {
    if(tekst.charAt(i) == '\n')
    counter = counter+5;
    }
    if(counter > 3)
    {
      jTextArea1.setBounds(new Rectangle(65, 55, 235, counter));
    }
    jTextArea1.setText(tekst);

sådan kunne den også laves:o) så skal du kun pille ved

counter = counter+5;
Avatar billede javanewbie Nybegynder
02. marts 2005 - 12:23 #7
Ok. Jeg prøver at se på det.
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