簡體   English   中英

Java:使JTextArea可滾動

[英]Java: Make JTextArea scrollable

這是我的第一篇文章,如果我沒有正確遵守規則,請原諒我。

我想在Java中做一些相對簡單的事情。 我想讓JTextArea可滾動。 我知道之前已經問過這個問題( Java:將滾動添加到文本區域 )。 但是,當我通過將JTextArea添加到JScrollPane來關注此示例時,我的JTextArea不會變為可滾動。 我錯過了什么?

這是我的代碼:

    import ...;

    public class MyControlPanel extends JPanel {

    //Declare variables
    private JComboBox accountsBox;
    private String[] accType = {"Current Account", "Savings Account"};
    private JLabel selAccType, initDeposit, logLabel, simLabel;
    private JTextField depositText;
    private JTextArea log;
    private JScrollPane scroll;
    private JButton createAccount, start, stop;
    private JPanel panel1, panel2, panel3, panel4, panel5, panel6;
    private Timer timer;
    private MyAccount theAccount;
    private Random randNum1, randNum2;
    private DecimalFormat df;

    //Constructor
    public MyControlPanel() {

        //Create instances:
        selAccType = new JLabel("Please select account type: "); //JLabel
        initDeposit = new JLabel("Input initial deposit: ");
        logLabel = new JLabel("Log:");
        simLabel = new JLabel();
        accountsBox = new JComboBox(accType); //JComboBox
        depositText = new JTextField("0"); // JTextField
        log = new JTextArea(); //JTextArea
        scroll = new JScrollPane(log); //JScrollPane
        createAccount = new JButton("Create Account"); //JButton
        start = new JButton("Start");
        stop = new JButton("Stop");
        panel1 = new JPanel(); //JPanel
        panel2 = new JPanel();
        panel3 = new JPanel();
        panel4 = new JPanel();
        panel5 = new JPanel();
        panel6 = new JPanel();
        timer = new Timer(); //Timer
        df = new DecimalFormat("#.00");

        //Add ActionListeners
        createAccount.addActionListener(new ActionListener() {...});

        start.addActionListener(new ActionListener() {...});

        stop.addActionListener(new ActionListener() {...});

        //Set JTextField size
        depositText.setColumns(5);

        //Set JTextArea size
        log.setPreferredSize(new Dimension(780, 150));

        //Set panel size
        panel1.setPreferredSize(new Dimension(500, 500));
        panel2.setPreferredSize(new Dimension(800, 50));
        panel3.setPreferredSize(new Dimension(500, 50));
        panel4.setPreferredSize(new Dimension(500, 50));
        panel5.setPreferredSize(new Dimension(800, 25));
        panel6.setPreferredSize(new Dimension(800, 200));

        //Set layout in panel5 to align left
        panel6.setLayout(new FlowLayout(FlowLayout.LEFT));

        //Add components to each panel
        addPanels();

        //Place objects in the framed window
        this.add(panel1);
        this.add(panel2);
        this.add(panel3);
        this.add(panel4);
        this.add(panel5);
        this.add(panel6);
    }

    public void addPanels() {...}

    public void removePanels() {...}

}

你需要改變:

log.setPreferredSize(new Dimension(780, 150));

至:

scroll.setPreferredSize(new Dimension(780, 150));

暫無
暫無

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

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