title: How To Keep Size Of JTextArea constant?
body: <p>I'm using an object of JTextArea in my application which deals with sending sms.</p>
  
  <p>I've used a DocumentFilter so as to allow only 160 characters to be typed in the textarea but now, I want the size of the textarea to be constant. it goes on increasing if I keep writing on the same line without pressing 'enter' key or even when I keep on pressing only <kbd>Enter</kbd> key. I tried once using 'scrollbar' too but the problem remains same. Suggest me something over this. Below is my code. Please check it.</p>
  
  <pre><code>class Send_sms extends JPanel implements ActionListener,DocumentListener    
  {     
      JButton send;  
      JTextArea smst;  
      JLabel title,limit;  
      JPanel mainp,titlep,sendp,wrap,titlewrap,blankp1,blankp2,sendwrap;   
      JScrollPane scroll;  
      Border br,blackbr;  
      Boolean flag = false;  
      PlainDocument plane;
      public static final int LINES = 4;  
      public static final int CHAR_PER_LINE = 40;     
         //character limit 160 for a sms  
  
      public Send_sms()
          {
          br = BorderFactory.createLineBorder(Color.RED);
          blackbr = BorderFactory.createEtchedBorder(EtchedBorder.RAISED,Color.DARK_GRAY,Color.GRAY);
          setBorder(blackbr);
  
                  title = new JLabel("Enter the text you want to send!");
          title.setFont(new Font("",Font.BOLD,17));
          limit = new JLabel(""+charCount+" Characters");
          smst = new JTextArea(LINES,CHAR_PER_LINE);
          smst.setSize(100,100);
          plane = (PlainDocument)smst.getDocument();
          //adding DocumentSizeFilter 2 keep track of characters entered
          plane.setDocumentFilter(new DocumentSizeFilter(charCount));
          plane.addDocumentListener(this);
          send = new JButton("Send");
          send.setToolTipText("Click Here To Send SMS");
          send.addActionListener(this);
  
          //scroll = new JScrollPane(smst);
          //scroll.setPreferredSize(new Dimension(200,200));
          //scroll.setVerticalScrollBarPolicy(null);
          //scroll.setHorizontalScrollBarPolicy(null);
          smst.setBorder(br);
  
          blankp1 = new JPanel();
          blankp2 = new JPanel();
          titlep = new JPanel(new FlowLayout(FlowLayout.CENTER));
          titlewrap = new JPanel(new GridLayout(2,1));
          mainp = new JPanel(new BorderLayout());
          sendwrap = new JPanel(new GridLayout(3,1));
          sendp = new JPanel(new FlowLayout(FlowLayout.CENTER));
          wrap = new JPanel(new BorderLayout());
  
          titlep.add(title);
          titlewrap.add(titlep);
          titlewrap.add(blankp1);
  
          sendp.add(send);
          sendwrap.add(limit);
          sendwrap.add(blankp2);
          sendwrap.add(sendp);
  
          wrap.add(smst,BorderLayout.CENTER); 
          mainp.add(titlewrap,BorderLayout.NORTH);
          mainp.add(wrap,BorderLayout.CENTER);
          mainp.add(sendwrap,BorderLayout.SOUTH);
          add(mainp);
  
  
                }
  
      public void actionPerformed(ActionEvent e)
      {
          Vector&lt;Vector&lt;String&gt;&gt; info = new Vector&lt;Vector&lt;String&gt;&gt; ();
          Vector&lt;String&gt; numbers = new Vector&lt;String&gt;();
          if(e.getSource() == send)
          {
              //Call a function to send he message to all the clients using text
              //charCount = 165;
              String msg = smst.getText();
              if(msg.length() == 0)
                  JOptionPane.showMessageDialog(null,"Please Enter Message","Error",JOptionPane.ERROR_MESSAGE);
              else
              {
              //  System.out.println("Message:"+msg);
  
                  Viewdata frame = new Viewdata(msg);
  
                  limit.setText(""+charCount+" Characters");
                  charCount = 160;
                } 
          }
      }
      public void insertUpdate(DocumentEvent e)
      {
          System.out.println("The legth:(insert) "+e.getLength());
          for(int i = 0;i&lt;e.getLength(); i++)
          {   
              if(charCount &gt;0)
                  charCount--;
              else
                  break;
          }
          limit.setText(""+charCount+" Characters");
  
      }
      public void removeUpdate(DocumentEvent e)
      {
          //System.out.println("The legth(remove): "+e.getLength());
          for(int i = 0;i&lt;e.getLength(); i++)
          {   
  
              charCount++;
  
          }
          limit.setText(""+charCount+" Characters");      
      }
      public void changedUpdate(DocumentEvent e)
      {
          //System.out.println("The legth(change): "+e.getLength());
  
      }   
  
  }//end Send_sms
  </code></pre>