日期:2014-05-20  浏览次数:20840 次

Java多行文本无法显示滚动条?JTextArea和JScrollPane问题
package myproject;
import java.awt.* ;
import java.awt.event.* ;

import javax.swing.* ;


public class test{

static final int WIDTH=400;
static final int HEIGHT=500;

public static void main(String args[]){
JFrame frame = new JFrame("TCMESFD") ; 
frame.setSize(WIDTH,HEIGHT);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

//菜单栏
     JMenuBar menubar1=new JMenuBar();//添加菜单条组件
     frame.setJMenuBar(menubar1);//将菜单条添加到顶层容器中
     JMenu menu1=new JMenu("故障树");  //设置菜单组件
     JMenu menu2=new JMenu("知识库");
     JMenu menu3=new JMenu("诊断结果");
     JMenu menu4=new JMenu("返回主界面");
     JMenu menu5=new JMenu("帮助");
     menubar1.add(menu1);//将菜单组件添加到菜单条组件中
     menubar1.add(menu2);
     menubar1.add(menu3);
     menubar1.add(menu4);
     menubar1.add(menu5);
//标题和按钮
     JLabel title = new JLabel("QWE") ;
 JButton StartD = new JButton("开始诊断") ;
 JButton StopD = new JButton("停止诊断") ;
 frame.add(title) ;
 frame.add(StartD) ;
 frame.add(StopD) ;
     //故障原因与结果的关系
    Container cont = frame.getContentPane() ;
  JRadioButton jrb1 = new JRadioButton("一一对应") ;
  JRadioButton jrb2 = new JRadioButton("一因多果") ;
  JRadioButton jrb3 = new JRadioButton("一果多因") ;
  JPanel pan = new JPanel() ;
  pan.setBorder(BorderFactory.createTitledBorder("故障原因与结果的关系")) ; // 设置一个边框的显示条
pan.setLayout(new GridLayout(1,3)) ;
pan.add(jrb1) ;
pan.add(jrb2) ;
pan.add(jrb3) ;
  cont.add(pan) ;
frame.addWindowListener(new WindowAdapter(){
public void windowClosing(WindowEvent obj){
System.exit(1) ;
}
}) ; 
//任务分解和任务分配


JTextArea jta1 = new JTextArea("12345678790"); 
JScrollPane scr1 = new JScrollPane(jta1,JScrollPane.VERTICAL_SCROLLBAR_ALWAYS ,JScrollPane.HORIZONTAL_SCROLLBAR_ALWAYS ) ;
//JScrollPane scr1 = new JScrollPane(jta1);
frame.add(jta1);
jta1.setLineWrap(true);


//frame.setContentPane(scr1);
//frame.add(jta1) ;










 
frame.setLayout(null) ;
title.setBounds(90,5,250,20) ;
StartD.setBounds(70,30,100,20) ;
StopD.setBounds(220,30,100,20) ;
pan.setBounds(5,210,375,50);
jta1.setBounds(15,80,150,105) ;
//jta2.setBounds(200,80,170,87) ;


frame.setVisible(true) ;


}
};

------解决方案--------------------
自己调整下位置吧。




import java.awt.*;
import java.awt.event.*;

import javax.swing.*;

public class Test4 {

static final int WIDTH = 400;
static final int HEIGHT = 500;

public static void main(String args[]) {
JFrame frame = new JFrame("TCMESFD");
frame.setSize(WIDTH, HEIGHT);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

// 菜单栏
JMenuBar menubar1 = new JMenuBar();// 添加菜单条组件
frame.setJMenuBar(menubar1);// 将菜单条添加到顶层容器中
JMenu menu1 = new JMenu("故障树"); // 设置菜单组件
JMenu menu2 = new JMenu("知识库");
JMenu menu3 = new JMenu("诊断结果");
JMenu menu4 = new JMenu("返回主界面");
JMenu menu5 = new JMenu("帮助");
menubar1.add(menu1);// 将菜单组件添加到菜单条组件中
menubar1.add(menu2);
menubar1.add(menu3);
menubar1.add(menu4);
menubar1.add(menu5);
// 标题和按钮
JLabel title = new JLabel("QWE");
JButton StartD = new JButton("开始诊断");
JButton StopD = new JButton("停止诊断");
frame.add(title);
frame.add(StartD);
frame.add(StopD);
JTextArea jta1 = new JTextArea(
"1234567asdgasdfasdgasdfaskjdglkajsdlfkjaslkdgjalksdjflkasjdgljasldfkjalskdgjlkasdjglkajsdlgkjasldkgjalskdfjlkasjdflkasjdflkasjdglkajsdlfkjasdklgjasldjgaklsdgjlkajsdglkasjdglkjasldg8790");