java中的ScrollPanel没有出现JTextArea而是调整大小

时间:2010-05-09 14:02:40

标签: java scrollbar jtextarea

我的程序已经完成,但是测试一下,我发现滚动面板没有出现,它只是调整了JTextArea的大小。代码如下:

package javaapplication15;

import java.awt.Container;
import java.awt.FlowLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.io.*;
import java.io.IOException;

import javax.swing.*;

public class Tekstprogram extends JFrame {

    public Tekstprogram() {

        setSize(400, 600);

        setDefaultCloseOperation(EXIT_ON_CLOSE);
        setResizable(false);
        Container Indhold = getContentPane();
        Indhold.setLayout(new FlowLayout());

        JButton openButton = new JButton("Open");
        JButton saveButton = new JButton("Save");

        final JLabel statusbar =
                new JLabel("Output of your selection will go here");

        final JTextArea TekstOmråde = new JTextArea(29, 30);

        JScrollPane scrollText = new JScrollPane(TekstOmråde);

        openButton.addActionListener(new ActionListener() {

            public void actionPerformed(ActionEvent ae) {

                JFileChooser chooser = new JFileChooser();
                chooser.setMultiSelectionEnabled(true);
                int option = chooser.showOpenDialog(Tekstprogram.this);
                if (option == JFileChooser.APPROVE_OPTION) {
                    File[] sf = chooser.getSelectedFiles();
                    String filelist = "nothing";
                    if (sf.length > 0) {
                        filelist = sf[0].getName();
                    }
                    for (int i = 1; i < sf.length; i++) {
                        filelist = filelist + ", " + sf[i].getName();
                    }

                    try {
                        String strLine;
                        File selectedFile = chooser.getSelectedFile();
                        FileInputStream in = new FileInputStream(selectedFile);
                        BufferedReader br = new BufferedReader(new InputStreamReader(in));
                        while ((strLine = br.readLine()) != null) {
                            TekstOmråde.append(strLine + "\n");
                        }
                    } catch (Exception e) {
                        System.out.println("En fejl opstod ved" + e);
                    }

                }
            }
        });

        saveButton.addActionListener(new ActionListener() {

            public void actionPerformed(ActionEvent ae) {
                JFileChooser chooser = new JFileChooser();
                int option = chooser.showSaveDialog(Tekstprogram.this);
                if (option == JFileChooser.APPROVE_OPTION) {
                    File file = chooser.getSelectedFile();
                    try {
                        BufferedWriter out = new BufferedWriter(new FileWriter(file));

                        out.write(TekstOmråde.getText());
                        out.close();

                    } catch (IOException e) {
                        System.out.println("IOException fejl opstod :");
                        e.printStackTrace();
                    }

                }

            }
        });

        Indhold.add(openButton);
        Indhold.add(saveButton);
        Indhold.add(TekstOmråde);
        Indhold.add(scrollText);
        Indhold.add(statusbar);
    }

    public static void main(String args[]) {
        Tekstprogram sfc = new Tekstprogram();
        sfc.setVisible(true);
    }
}

有没有让JTextArea变得静态?

2 个答案:

答案 0 :(得分:2)

删除     Indhold.add(TekstOmråde);

因为你有

JScrollPane scrollText = new JScrollPane(TekstOmråde);

您已经通过

间接添加了TexstOmråde
Indhold.add(scrollText);

答案 1 :(得分:1)

textarea需要位于滚动窗格