应将JTextArea置于JScrollPanel中
若要使只有垂直滚动条而没有水平滚动条,使用JTextArea.setLineWrap(true),自动换行。

文本换行代码片段如下:

JTextArea adressTextArea = new JTextArea(11, 35);
//设置自动换行
adressTextArea.setLineWrap(true);
//定义带滚动条的panel,并将JTextArea存入到panel中,使textarea具有滚动条显示功能。
JScrollPane scrollpane = new JScrollPane(adressTextArea);
//取消显示水平滚动条
scrollpane.setHorizontalScrollBarPolicy(JScrollPane.HORIZONTAL_SCROLLBAR_NEVER);
//显示垂直滚动条
scrollpane.setVerticalScrollBarPolicy(JScrollPane.VERTICAL_SCROLLBAR_AS_NEEDED);


以下为个人测试画的一个简单页面,仅供参考:
  1 package JFrameTest;
  2 
  3 import java.awt.BorderLayout;
  4 
  5 @SuppressWarnings("all")
  6 public class ApplyCertTest extends JFrame {
  7 
  8     private JPanel contentPane;
  9 
 10     /**
 11      * Launch the application.
 12      */
 13     public static void main(String[] args) {
 14         EventQueue.invokeLater(new Runnable() {
 15             public void run() {
 16                 try {
 17                     ApplyCertTest frame = new ApplyCertTest();
 18                     frame.setVisible(true);
 19                     frame.setTitle("申请新许可");
 20                     frame.getContentPane().setLayout(null);
 21                 } catch (Exception e) {
 22                     e.printStackTrace();
 23                 }
 24             }
 25         });
 26     }
 27 
 28     /**
 29      * Create the frame.
 30      */
 31     public ApplyCertTest() {
 32         setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
 33         //setResizable决定了窗体是否可以放大。true则可以最大化,false则不可变
 34         setResizable(false);
 35         setBounds(100, 100, 510, 520);
 36         contentPane = new JPanel();
 37         contentPane.setLayout(new FlowLayout(FlowLayout.LEFT));
 38         
 39         getContentPane().add(contentPane, BorderLayout.NORTH);
 40         
 41         JLabel lblNewLabel = new JLabel("    生成新的许可需填写下列信息:");
 42         lblNewLabel.setLabelFor(contentPane);
 43         contentPane.add(lblNewLabel);
 44         
 45         JPanel lPanel = new JPanel();
 46         lPanel.setBorder (BorderFactory.createTitledBorder ("申请文件信息"));
 47         lPanel.setLayout(new BorderLayout(5, 0));
 48         getContentPane().add(lPanel);
 49         
 50         //用户名称
 51         JPanel mlPanel = new JPanel();
 52         mlPanel.setLayout(new FlowLayout(FlowLayout.LEFT));
 53         JLabel userName = new JLabel("用户名称:        ");
 54         mlPanel.add(userName);
 55         JTextField userTextField = new JTextField(35);
 56         mlPanel.add(userTextField);
 57         
 58         //公司名称
 59         mlPanel.setLayout(new FlowLayout(FlowLayout.LEFT));
 60         JLabel companyName = new JLabel("公司名称:        ");
 61         mlPanel.add(companyName);
 62         JTextField companyTextField = new JTextField(35);
 63         mlPanel.add(companyTextField);
 64         lPanel.add(mlPanel);
 65         
 66         //电话号码
 67         mlPanel.setLayout(new FlowLayout(FlowLayout.LEFT));
 68         JLabel phone = new JLabel("电话号码:        ");
 69         mlPanel.add(phone);
 70         JTextField phoneTextField = new JTextField(35);
 71         mlPanel.add(phoneTextField);
 72         lPanel.add(mlPanel);
 73         
 74         //电子邮件
 75         mlPanel.setLayout(new FlowLayout(FlowLayout.LEFT));
 76         JLabel email = new JLabel("电子邮件:        ");
 77         mlPanel.add(email);
 78         JTextField emailTextField = new JTextField(35);
 79         mlPanel.add(emailTextField);
 80         lPanel.add(mlPanel);
 81         
 82         //联系地址
 83         mlPanel.setLayout(new FlowLayout(FlowLayout.LEFT));
 84         JLabel adress = new JLabel("联系地址:        ");
 85         mlPanel.add(adress);
 86         //JTextField adressTextField = new JTextField(35);
 87         JTextArea adressTextArea = new JTextArea(11, 35);
 88         //设置自动换行
 89         adressTextArea.setLineWrap(true);
 90         //定义带滚动条的panel,并将JTextArea存入到panel中,使textarea具有滚动条显示功能。
 91         JScrollPane scrollpane = new JScrollPane(adressTextArea);
 92         //取消显示水平滚动条
 93         scrollpane.setHorizontalScrollBarPolicy(JScrollPane.HORIZONTAL_SCROLLBAR_NEVER);
 94         //显示垂直滚动条
 95         scrollpane.setVerticalScrollBarPolicy(JScrollPane.VERTICAL_SCROLLBAR_AS_NEEDED);
 96         mlPanel.add(scrollpane);
 97         lPanel.add(mlPanel);
 98         
 99         //适用IP
100         mlPanel.setLayout(new FlowLayout(FlowLayout.LEFT));
101         JLabel ipLabel = new JLabel("适用IP:             ");
102         mlPanel.add(ipLabel);
103         JTextField ipTextField = new JTextField(35);
104         mlPanel.add(ipTextField);
105         lPanel.add(mlPanel);
106         
107         //适用mac地址
108         mlPanel.setLayout(new FlowLayout(FlowLayout.LEFT));
109         JLabel macLabel = new JLabel("适用mac地址:");
110         mlPanel.add(macLabel);
111         JTextField macTextField = new JTextField(35);
112         mlPanel.add(macTextField);
113         lPanel.add(mlPanel);
114         
115         //使用时限(天)
116         mlPanel.setLayout(new FlowLayout(FlowLayout.LEFT));
117         JLabel dayLimit = new JLabel("使用时限(天): ");
118         mlPanel.add(dayLimit);
119         JTextField dayLimitTextField = new JTextField(35);
120         mlPanel.add(dayLimitTextField);
121         lPanel.add(mlPanel);
122         
123         JPanel bPanel = new JPanel();
124         bPanel.setLayout(new FlowLayout(FlowLayout.RIGHT));
125         JButton saveButton = new JButton("保存");
126         JButton resetButton = new JButton("重置");
127         JButton quitButton = new JButton("退出");
128         bPanel.add(saveButton);
129         bPanel.add(resetButton);
130         bPanel.add(quitButton);
131         
132         getContentPane().add(bPanel, BorderLayout.SOUTH);
133         
134     }
135 }

 

posted on 2017-04-19 11:45  书未来  阅读(3194)  评论(0编辑  收藏  举报