我这个java记事本程序怎么没加上滚动条?

这是我的代码:
package 进阶.第八章;

import java.awt.*;
import java.awt.event.*;
import javax.swing.*;

import java.io.*;

public class L8_8 extends JFrame{
private static JMenuBar bar;
private static JMenu m1,m2;
private static JMenuItem it1,it2;
private static JTextArea ar;
private static JScrollPane jsp;

private L8_8(){
super("记事本");
try{
UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());
}catch(Exception e){}

init();
}
private void init(){
bar=new JMenuBar();

m1=new JMenu("文件(F)");
m1.setMnemonic('F');

m2=new JMenu("编辑(E)");
m2.setMnemonic('E');

it1=new JMenuItem("打开(0) Ctrl+0");

it2=new JMenuItem("保存(S) Ctrl+S");

ar=new JTextArea();
ar.setLineWrap(true);
jsp=new JScrollPane(ar);

it1.addActionListener(new Sj());
it2.addActionListener(new Sj());

bar.add(m1); bar.add(m2);
m1.add(it1); m1.add(it2);

this.setJMenuBar(bar);
this.add(jsp);
this.add(ar);

this.setBounds(200, 100, 1050, 700);
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
this.setIconImage(new ImageIcon("image/notepad.jpg").getImage());
this.setVisible(true);
}
private class Sj implements ActionListener{
public void actionPerformed(ActionEvent e){
String s=e.getActionCommand();
if(s.equals(e.getSource()==it1)){
try{
//System.out.println("打开");
JFileChooser wjxz=new JFileChooser();
wjxz.setDialogTitle("打开文件");
wjxz.setCurrentDirectory(new File("e:/javaw/Java/src/进阶/第八章"));
wjxz.showOpenDialog(null);

wjxz.setVisible(true);

String wjlj=wjxz.getSelectedFile().getAbsolutePath();
//这行的作用是得到用户选择的全路径
//System.out.println(wjlj);
FileReader fr=null; BufferedReader br=null;
try{
fr=new FileReader(wjlj);
br=new BufferedReader(fr);
String c="",n="";
while((c=br.readLine())!=null){
n+=(c+"\n");
}
ar.setText(n);
}catch(Exception ee){

}finally{
try{
fr.close();
br.close();
}catch(Exception de){

}
}
}catch(Exception e1){}
}else if(s.equals(e.getSource()==it2)){
System.out.println("保存");
}
}
}
public static void main(String[] args){
new L8_8();
}
}
这是程序图片:
想了半天都没想出来

第1个回答  推荐于2017-10-20
你好,滚动条默认是当内容到边界才会出来的,如果想要默认就出现的话就用
jsp = new JScrollPane(ar, JScrollPane.VERTICAL_SCROLLBAR_ALWAYS,
JScrollPane.HORIZONTAL_SCROLLBAR_ALWAYS);

或者是单独设置,分别设置水平和竖直方向的滚动条显示
jsp = new JScrollPane(ar);

jsp.setHorizontalScrollBarPolicy( JScrollPane.HORIZONTAL_SCROLLBAR_ALWAYS);
jsp.setVerticalScrollBarPolicy(JScrollPane.VERTICAL_SCROLLBAR_ALWAYS);

而且你已经把jsp加到窗体上了,就不用再把ar加上去了。本回答被提问者采纳
第2个回答  2017-10-20
JScrollPane自带就有滚动条
//分别设置水平和垂直滚动条自动出现

jsp.setHorizontalScrollBarPolicy(JScrollPane.HORIZONTAL_SCROLLBAR_AS_NEEDED);
jsp.setVerticalScrollBarPolicy(JScrollPane.VERTICAL_SCROLLBAR_AS_NEEDED);
//分别设置水平和垂直滚动条总是出现
jsp.setHorizontalScrollBarPolicy(JScrollPane.HORIZONTAL_SCROLLBAR_ALWAYS);
jsp.setVerticalScrollBarPolicy( JScrollPane.VERTICAL_SCROLLBAR_ALWAYS);
//分别设置水平和垂直滚动条总是隐藏
jsp.setHorizontalScrollBarPolicy(JScrollPane.HORIZONTAL_SCROLLBAR_NEVER); jsp.setVerticalScrollBarPolicy(JScrollPane.VERTICAL_SCROLLBAR_NEVER);
第3个回答  2013-09-18
this.add(jsp);
// this.add(ar); 去掉这行
相似回答