Java多行文本无法显示滚动条?JTextArea和JScrollPane问题

liunian021 2013-10-31 01:34:35
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) ;


}
};
...全文
561 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
zhou_qun31655 2013-11-01
  • 打赏
  • 举报
回复
liunian021 2013-10-31
  • 打赏
  • 举报
回复
引用 3 楼 huxiweng 的回复:
自己调整下位置吧。

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");
		JScrollPane scr1 = new JScrollPane(jta1);
		scr1.setBounds(60, 60, 100, 100);
		frame.add(scr1);
		// 故障原因与结果的关系
		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);
			}
		});
		// 任务分解和任务分配

		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);

	}
};
非常感谢。
teemai 2013-10-31
  • 打赏
  • 举报
回复
自己调整下位置吧。




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");
JScrollPane scr1 = new JScrollPane(jta1);
scr1.setBounds(60, 60, 100, 100);
frame.add(scr1);
// 故障原因与结果的关系
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);
}
});
// 任务分解和任务分配

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);

}
};
liunian021 2013-10-31
  • 打赏
  • 举报
回复
如图所示,多行文本在特定位置显示,而且带上垂直滚动条。请求帮助
liunian021 2013-10-31
  • 打赏
  • 举报
回复
java万年历课程设计,有源代码 源代码片段:public class wannianli extends JFrame implements ActionListener, MouseListener { private Calendar cld = Calendar.getInstance(); private String [] astr = {"星期一", "星期二", "星期三", "星期四", "星期五", "星期六", "星期日"}; private DefaultTableModel dtm = new DefaultTableModel(null,astr); private JTable table = new JTable(dtm); //装日期的表格 private JScrollPane sp = new JScrollPane(table); private JButton bLastYear = new JButton("上一年"); private JButton bNextYear = new JButton("下一年"); private JButton bLastMonth = new JButton("上月"); private JButton bNextMonth = new JButton("下月"); private JTextField jtfYear = new JTextField(5);//jtfYear年份显示和输入文本框,允许编辑单行文本 private JTextField jtfMonth = new JTextField(2);//jtfMonth月份显示文本框 private JPanel p1 = new JPanel(); //装入控制日期按钮的模块 private JPanel p2 = new JPanel(); private JPanel p3 = new JPanel(new BorderLayout()); private JPanel p4 = new JPanel(new GridLayout(2,1)); private JPanel p5 = new JPanel(new BorderLayout()); private JButton bAdd = new JButton("保存日志"); private JButton bDel = new JButton("删除日志"); private JTextArea jta = new JTextArea(); //JTextArea 是一个显示文本多行区域 private JScrollPane jsp = new JScrollPane(jta); //管理视口、可选的垂直和水平滚动条以及可选的行和列标题视口 private JLabel l = new JLabel("小提示:可直接输入年份,提高查询效率!"); private JLabel lt = new JLabel();//系统时间 private JLabel ld = new JLabel();//日期是否被选择 private int lastTime; JMenuBar jmb = new JMenuBar(); JMenu view;
java 万年历 源代码 片段如下: package wannianli; import java.awt.*; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.awt.event.MouseEvent; import java.awt.event.MouseListener; import java.io.BufferedReader; import java.io.BufferedWriter; import java.io.File; import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.FileOutputStream; import java.io.IOException; import java.io.InputStreamReader; import java.io.OutputStreamWriter; //import java.sql.Date; import java.text.DateFormat; import java.text.SimpleDateFormat; import java.util.Calendar; import java.util.Date; import javax.swing.Icon; import javax.swing.JButton; import javax.swing.JDialog; import javax.swing.JFrame; import javax.swing.JLabel; import javax.swing.JMenu; import javax.swing.JMenuBar; import javax.swing.JMenuItem; import javax.swing.JOptionPane; import javax.swing.JPanel; import javax.swing.JScrollPane; import javax.swing.JTable; import javax.swing.JTextArea; import javax.swing.JTextField; import javax.swing.table.DefaultTableModel; public class wannianli extends JFrame implements ActionListener, MouseListener { private Calendar cld = Calendar.getInstance(); private String [] astr = {"星期一", "星期二", "星期三", "星期四", "星期五", "星期六", "星期日"}; private DefaultTableModel dtm = new DefaultTableModel(null,astr); private JTable table = new JTable(dtm); //装日期的表格 private JScrollPane sp = new JScrollPane(table); private JButton bLastYear = new JButton("上一年"); private JButton bNextYear = new JButton("下一年"); private JButton bLastMonth = new JButton("上月"); private JButton bNextMonth = new JButton("下月"); private JTextField jtfYear = new JTextField(5);//jtfYear年份显示和输入文本框,允许编辑单行文本 private JTextField jtfMonth = new JTextField(2);//jtfMonth月份显示文本框 private JPanel p1 = new JPanel(); //装入控制日期按钮的模块 private JPanel p2 = new JPanel(); private JPanel p3 = new JPanel(new BorderLayout()); private JPanel p4 = new JPanel(new GridLayout(2,1)); private JPanel p5 = new JPanel(new BorderLayout()); private JButton bAdd = new JButton("保存日志"); private JButton bDel = new JButton("删除日志"); private JTextArea jta = new JTextArea(); //JTextArea 是一个显示文本多行区域 private JScrollPane jsp = new JScrollPane(jta); //管理视口、可选的垂直和水平滚动条以及可选的行和列标题视口 private JLabel l = new JLabel("小提示:可直接输入年份,提高查询效率!"); private JLabel lt = new JLabel();//系统时间 private JLabel ld = new JLabel();//日期是否被选择 private int lastTime; JMenuBar jmb = new JMenuBar(); JMenu view;

62,614

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧