簡體   English   中英

如何將滾動條添加到文本區域?

[英]How can I add a scroll bar to a text area?

請任何人告訴我如何將滾動條添加到JTextArea 我嘗試了很多東西。 但仍然無法得到它。 我復制了一些與文本區域相關的代碼。

public class main extends JPanel {
    private JTextArea jcomp1;

    public main() {
         jcomp1 = new JTextArea(5, 5);
         setPreferredSize(new Dimension(944, 574));
        // setPreferredSize (new Dimension (1024, 1080));
        setLayout(null);

        //add components
        
        add(jcomp1);
        jcomp1.setBounds(110, 165, 330, 300);
    }

    public static void main(String[] args) {
        JFrame frame = new JFrame("Paraphrasing Tool");
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        frame.getContentPane().add(new main());
        frame.pack();
        frame.setVisible(true);
    }
}

Oracle 有一個有用的教程,使用 Swing 創建 GUI 跳過 Netbeans 部分。

正如安德魯所說,您必須將JTextArea放置在JScrollPane中,然后將JScrollPane放置在具有 Swing 布局的JPanel中。 我使用了BorderLayout

這是我輸入幾行后的 GUI。

在此處輸入圖像描述

這是完整的可運行代碼。

import java.awt.BorderLayout;
import java.awt.Insets;

import javax.swing.BorderFactory;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JTextArea;
import javax.swing.SwingUtilities;

public class JTextAreaExample extends JPanel {

    private static final long serialVersionUID = 1L;
    
    private JTextArea jcomp1;

    public JTextAreaExample() {
        this.setBorder(BorderFactory.createEmptyBorder(5, 5, 5, 5));
        this.setLayout(new BorderLayout());
        jcomp1 = new JTextArea(5, 30);
        jcomp1.setMargin(new Insets(5, 5, 5, 5));
        JScrollPane scrollPane = new JScrollPane(jcomp1);
        scrollPane.setVerticalScrollBarPolicy(JScrollPane.VERTICAL_SCROLLBAR_ALWAYS);
        add(scrollPane);
    }

    public static void main(String[] args) {
        SwingUtilities.invokeLater(new Runnable() {
            @Override
            public void run() {
                JFrame frame = new JFrame("Paraphrasing Tool");
                frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
                
                frame.add(new JTextAreaExample(), BorderLayout.CENTER);
                
                frame.pack();
                frame.setLocationByPlatform(true);
                frame.setVisible(true);
            }
        });
    }

}

將文本區域添加到JScrollPane (的視口)。 最簡單的方法是在構造函數中添加它。 然后將滾動窗格添加到具有布局的面板(在使用布局的 GUI 中)。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM