sumJTextArea = new JTextArea(5, 30);
      sumJTextArea.setFont(new Font("SansSerif", Font.PLAIN, 15));
       sumJTextArea.setVisible(false);
     sumJScrollPane=new JScrollPane(sumJTextArea);
     sumJScrollPane.setPreferredSize(new Dimension(12, 3));
     sumJScrollPane.setVisible(true);随着字的增多,我的滚动条永远都不滚动,只是是直接变长了

解决方案 »

  1.   

    谢谢kevinliuu(@。@) 
    都帮我好多次了
    sumJTextArea .setLineWrap(true);
    这个也不行
      

  2.   


    我把我精简的源码贴一下,只要让这个滚动条滚动就好了,而不是直接拉长import java.awt.*;
    import java.awt.event.*;
    import java.util.*;
    import javax.swing.*;
    import java.sql.*;
    import javax.swing.Box;
    import java.awt.BorderLayout;
    import java.awt.Container;
    import java.awt.Dimension;public class sale extends JFrame implements ActionListener {
      JMenuBar mubar;
      JMenu filemu, inputmu, selemu, callmu, helpmu, aboutmu,updatemu; //menu
       JMenuItem selehosmuit, selehospermuit, seleallmuit; //selemuit  JPanel inputJPanel,selectallJPanel,selehospersonJPanel,updtJPanel; // selec se;
      selehosperson sehp;//input windows  JButton okJButton, nextJButton;
      JTextField sumJTextField;
      JLabel nameJLabel, hosJLabel, datefromJLabel, datetoJLabel, sumJLabel;
     
      public sale() {
        createUserInterface();
      }  private void createUserInterface() {
        Container contentPane = getContentPane();
       sehp=new  selehosperson (this);
       inputJPanel=new JPanel();
       
       selectallJPanel=new JPanel();//no use
       updtJPanel=new JPanel();   selehospersonJPanel=new JPanel(); 
      // selectallJPanel.add(se);
       selehospersonJPanel.add(sehp);
      
       
       
       contentPane.add(selehospersonJPanel, BorderLayout.CENTER);
        mubar = new JMenuBar();
        setJMenuBar(mubar);    //setmenu
       
        selemu = new JMenu("查询");
        selemu.setFont(new Font("SansSerif", Font.PLAIN, 15));
      
       
     
        mubar.add(selemu);    selehosmuit = new JMenuItem("按医院查询");
        selehosmuit.setFont(new Font("SansSerif", Font.PLAIN, 15));
       selehospermuit = new JMenuItem("按医院或销售员查询");
       selehospermuit.setFont(new Font("SansSerif", Font.PLAIN, 15));
        selemu.add(selehospermuit);
     
        selehospermuit.addActionListener(sehp);    setTitle("sale"); // set title bar text
        setSize(935, 790); // set window size
        setVisible(true); // display window  }  private void okJButtonactionPerformed(ActionEvent e) {    sumJTextField.setText("");
      }  public void actionPerformed(ActionEvent e) {  }  public static void main(String[] args) {
        sale application = new sale();
        application.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);  } // end method main
    }
    //input
       class selehosperson extends JPanel implements ActionListener
          {
         JButton okhosJButton,okperJButton, hosJButton,perJButton;
        JTextArea sumJTextArea;
        JScrollPane sumJScrollPane;
        JLabel nameJLabel, hosJLabel, datefromJLabel, datetoJLabel, sumJLabel;
            sale ss;     selehosperson(sale ss) {
            this.ss = ss;
             createUserInterface();
          }        private void createUserInterface() {
              //input windows          BorderLayout layout = new BorderLayout();
              setLayout(layout);            okhosJButton = new JButton();
           okhosJButton.setText( "fffffffffffffff" );
            okhosJButton.setFont(new Font("SansSerif", Font.PLAIN, 15));
           okhosJButton.setVisible(false);
            okhosJButton.addActionListener(           new ActionListener() 
               {
             
                  public void actionPerformed( ActionEvent event )
                  {
                     okhosJButtonActionPerformed( event );
                  }           }         ); 
                           sumJTextArea = new JTextArea(5, 30);
          // sumJTextArea.setMaximumSize( sumJTextArea.getPreferredSize());
          sumJTextArea.setFont(new Font("SansSerif", Font.PLAIN, 15));
           //sumJTextArea.setVisible(true);
           sumJTextArea .setLineWrap(true);     sumJScrollPane=new JScrollPane(sumJTextArea);
         sumJScrollPane.setPreferredSize(new Dimension(12, 3));
         
         sumJScrollPane.setVisible(true);
     
         Box hbox5= Box.createHorizontalBox();
         Box hbox6= Box.createHorizontalBox();         hbox5.add(Box.createHorizontalStrut(58));
        
             hbox5.add(sumJTextArea );
             hbox5.add( sumJScrollPane );
             hbox5.add(Box.createHorizontalStrut(85));        
             
              hbox6.add(Box.createHorizontalGlue());
              hbox6.add(okhosJButton);
               hbox6.add(Box.createHorizontalStrut(85));
              Box vbox = Box.createVerticalBox();
           
             
         
              vbox.add(Box.createVerticalStrut(10));
              vbox.add(hbox5);
               vbox.add(Box.createVerticalStrut(10));
              vbox.add(hbox6);  
              add(vbox);
                  }
          public void actionPerformed(ActionEvent e) {
            if (e.getSource() == ss.selehospermuit)
          okhosJButton.setVisible(true);
          sumJScrollPane.setVisible(true);
          sumJTextArea.setVisible(true);
          }
       private void okhosJButtonActionPerformed( ActionEvent event )
         {      
      sumJTextArea.setVisible(true);
       sumJTextArea.append("aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"+"\n");
           
     sumJTextArea.append("aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"+"\n");
        sumJTextArea.append("aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"+"\n");
        sumJTextArea.append("aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"+"\n");
        sumJTextArea.append("aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"+"\n");
     
    ;        }
        }
      

  3.   

    我认为是你的Box扰乱了文本框的布局
      

  4.   

    可是我必须用这个,因为我有很多面板,在点菜单的时候再显示的
    所以必须用这个Box
      

  5.   

    把这两句去掉
    sumJScrollPane.setPreferredSize(new Dimension(12, 3));
    hbox5.add(sumJTextArea);
      

  6.   

    直接用JBuilder做不是更好~~