已有101人关注
代码的哪一块出问题了,执行后说明还可以动
发表在Java图书答疑 2020-04-26 悬赏:1 学分 《零基础学Java》第11章 Swing程序设计
是否精华
版块置顶:
package text;

import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

import javax.swing.*;
import javax.swing.border.*;

public class StringLinewrap extends JFrame {
	
	private JPanel contentPane;
	private JTextArea sourceTextArea;
	private JTextArea destinationTextArea;
	
	public StringLinewrap() {
		
		setTitle("根据标点对字符串分行");
		setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		setBounds(100, 100, 475, 441);
		
		contentPane = new JPanel();
		contentPane.setBorder(new EmptyBorder(5, 5, 5, 5));
		setContentPane(contentPane);
		contentPane.setLayout(null);
		
		JLabel label = new JLabel("<html>在下面的文本框输入字符串(包含中文格式或英文格式下的逗号),然后单击“分行显示”按钮,程序将根据逗号分行。</html>");
		/*
		 * TitledBorder 创建带有指定边框,标题,标题对齐,标题位置,标题字体和标题颜色的TitledBorder实例。
		 * null 无指定边框
		 * "说明" 边框标题
		 * TitledBorder.LEADING 将边框线左侧的标题文本从左到右定位,位于边框线右侧从右到左(标题对齐)
		 * TitledBorder.TOP	将标题放在边框顶部的中间(标题位置)
		 * null 无标题字体
		 * null 无标题颜色
		 */
		label.setBorder(new TitledBorder(null, "说明", TitledBorder.LEADING, TitledBorder.TOP, null, null));
		label.setBounds(10, 10, 439, 76);		// 定义标签大小
		contentPane.add(label);
		
		JScrollPane scrollPane = new JScrollPane();
		scrollPane.setBounds(10, 10, 439, 98);		// 自定义滚动面板位置和面板大小
		contentPane.add(scrollPane);
		
		sourceTextArea = new JTextArea();
		sourceTextArea.setLineWrap(true);			// 可以自定义换行
		scrollPane.setViewportView(sourceTextArea);
		
		JButton button = new JButton("分行显示");
		button.addActionListener(new ActionListener() {

			public void actionPerformed(ActionEvent e) {
				do_button_actionPerformed(e);
			}

			private void do_button_actionPerformed(ActionEvent e) {
				String sourceString = sourceTextArea.getText();		// 获取用户输入的字段
				String lines[] = sourceString.split(",|,");			// 根据中英文逗号分割字符串为数组
				StringBuilder sbuilder = new StringBuilder();		// 创建字符串构建器
				
				for (String line : lines) {		// 遍历分割后的字符串数组
					// 把每个数组元素的字符串与回车符相连并添加到字符串构建器中
					sbuilder.append(line + "\n");
				}
				
				destinationTextArea.setText(sbuilder.toString());
			}
		
		});

		button.setBounds(177, 192, 101, 25);
		contentPane.add(button);
		
		JScrollPane scrollPane_1 = new JScrollPane();
		scrollPane_1.setBounds(10, 233, 439, 156);
		contentPane.add(scrollPane_1);
		
		destinationTextArea = new JTextArea();
		scrollPane_1.setViewportView(destinationTextArea);
	}

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

}

执行后

image.png

但是正确的是要这样

image.png

分享到:
精彩评论 1
根号申
学分:4736 LV12
TA的每日心情
2021-07-16 23:48:46
2020-04-30
沙发

两个组件坐标重合了

首页上一页 1 下一页尾页 1 条记录 1/1页
手机同步功能介绍
友情提示:以下图书配套资源能够实现手机同步功能
明日微信公众号
明日之星 明日之星编程特训营
客服热线(每日9:00-17:00)
400 675 1066
mingrisoft@mingrisoft.com
吉林省明日科技有限公司Copyright ©2007-2022,mingrisoft.com, All Rights Reserved长春市北湖科技开发区盛北大街3333号长春北湖科技园项目一期A10号楼四、五层
吉ICP备10002740号-2吉公网安备22010202000132经营性网站备案信息 营业执照