JTextArea自動換行以及設置滾動條


應將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 }

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM