有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

Java:使JTextArea可滚动

这是我的第一篇帖子,如果我没有正确遵守规则,请原谅我

我正在尝试用Java做一些相对简单的事情。我想使JTextArea可滚动。我知道以前有人问过这个问题。然而,当我按照这个示例将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() {...}

}

共 (1) 个答案

  1. # 1 楼答案

    你需要改变:

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

    致:

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