我的程序已经完成,但是测试一下,我发现滚动面板没有出现,它只是调整了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变得静态?
答案 0 :(得分:2)
删除
Indhold.add(TekstOmråde);
因为你有
JScrollPane scrollText = new JScrollPane(TekstOmråde);
您已经通过
间接添加了TexstOmråde
Indhold.add(scrollText);
答案 1 :(得分:1)
textarea需要位于滚动窗格
内