想用java写个桌面小demo,就布局都差点写吐血了,学艺不精

本文介绍了一个使用Java Swing进行桌面应用程序界面设计的具体案例。作者详细展示了如何构建一个用于文件去重管理器的用户界面,包括组件创建、布局管理、事件监听等关键步骤。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

demo简略需求

项目背景
很多文件重复存放,除了管理混乱,还会对患有强迫症用户的身心造成10000点的伤害...其实就是360云盘当时上传了有上传,造成很多重复的图片+视频,前阵子360个人云盘“倒闭”,电脑日夜兼程,始终把图片下了下来,下下来后,作为重度强迫症患者的我,看着无数张图片里面n多重复文件,吃不香睡不着....

 

  1. 点击“载入”,默认载入上次目录,若是第一次,默认载入文档图片目录,同时弹出“选择路径”菜单。选择需要载入的文件目录后,如果跟现载入的不一样,则中断载入操作,重新载入新路径。若一样,则继续载入;
  2. 图片预览,默认显示第一张,如果用户点击选择某一张,则图片预览变为用户选中的;
  3. 点击去重,弹出“重速度”(多线程),“重性能”(单线程)
  4. 点击撤销,恢复去重时删除的文件
  5. 去重:先判断文件名(除去“ - 副本”、“(1)”之类结尾的字符)是否重复,再判断文件大小+文件类型是否一样,如果都一样,则计算文件的md5值,通过md5值来判断。
  6. 第一次启动时,弹出倒计时框,提示去重撤销需要创建一个隐藏文件,如果不需要撤销,可以打钩,不创建隐藏文件,而是直接删除;
  7. 弹出免责声明,数据无价,请确认再去重(删除)。
  8. UI样图,如下图

 ------------------------------------------------------------------------------------------

想用java写个桌面小demo,就布局都差点写吐血了,最终还是没学好,哎,都怪学艺不精

界面实现代码

package zuiquchong;

import java.awt.BorderLayout;
import java.awt.Dimension;
import java.awt.GridLayout;

import javax.swing.BorderFactory;
import javax.swing.ImageIcon;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JTextArea;
import javax.swing.SwingConstants;

/** 
 * @author 苏宝伢 E-mail:by.su@qq.com 
 * @version 创建时间: 2017年4月5日 下午12:47:32
 */
public class RemovalUI extends JFrame{

	JPanel JPanelTitle,JPanelTextArea,JPanelLblPreview,JPanelOperation,JPanelContainer,JPanelLblStatusBar;
	JButton btnLoader,btnRemoval,btnCancel,btnHistory;
	JTextArea displayContent;
	JLabel lblTitle,lblPreviewContent,lblStatusBar;
	
	public RemovalUI(){
		super("最去重文件管理器");
		initialization();
	}
	public static void main(String[] args) {
		new RemovalUI();
	}
	
	//初始化UI窗体
	public void initialization(){
		buildComponent();
		addComponentToPanel();
		componentStyle();
		uiLayout();
		this.setSize(800, 600);
		this.setResizable(false);            //不能改变大小
		this.setVisible(true);               //设置窗口可见
		this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
	}
	
	//创建各组件对象
	public void buildComponent(){
		JPanelTextArea = new JPanel();
		JPanelContainer = new JPanel();
		JPanelLblPreview = new JPanel();
		JPanelOperation = new JPanel();
		JPanelTitle = new JPanel();
		JPanelLblStatusBar = new JPanel();
		displayContent = new JTextArea(30,48);
		lblTitle = new JLabel("最去重文件管理器",SwingConstants.CENTER);
		lblPreviewContent = new JLabel();
		btnLoader = new JButton("载入");
		btnRemoval = new JButton("去重");
		btnCancel = new JButton("撤销");
		btnHistory = new JButton("历史记录");
		lblStatusBar = new JLabel("by不最醉不龟归  | e-mail:by.su@qq.com",SwingConstants.RIGHT);
	}
    //往容器中添加组件
	public void addComponentToPanel(){
		this.add(JPanelTitle);
		//this.add(JPanelTextArea);
		this.add(JPanelContainer);
		this.add(JPanelLblStatusBar);
		JPanelTitle.add(lblTitle);
		JPanelTextArea.add(displayContent);
		JPanelLblStatusBar.add(lblStatusBar);
	}
	//窗体布局
	public void uiLayout(){
		//==============总体布局================================
		this.setLayout(new BorderLayout(10,10));//边界布局
		this.add(JPanelTextArea,BorderLayout.WEST);
		this.add(JPanelContainer,BorderLayout.EAST);
		this.add(JPanelTitle,BorderLayout.NORTH);
		this.add(JPanelLblStatusBar,BorderLayout.SOUTH);
		//===============右侧布局================================
		JPanelContainer.setLayout(new GridLayout(2,1));//网格布局
		JPanelContainer.add(lblPreviewContent);
		JPanelContainer.add(JPanelOperation);
		
		//================右下布局===============================
		JPanelOperation.setLayout(null);//无布局,绝对布局
		
		JPanelOperation.add(btnLoader);
		JPanelOperation.add(btnRemoval);
		JPanelOperation.add(btnCancel);
		JPanelOperation.add(btnHistory);
		btnLoader.setBounds(260,30,120,30);
		btnRemoval.setBounds(260,80,120,30);
		btnCancel.setBounds(260,130,120,30);
		btnHistory.setBounds(260,180,120,30);
	}
	//组件样式
	public void componentStyle(){
		lblTitle.setFont(new java.awt.Font("",1,20));//设置lblTitle字体和大小
		lblTitle.setBorder(BorderFactory.createEmptyBorder(10, 0, 0, 0));//设置lblTitle边框,上左下右
		lblPreviewContent.setIcon(new ImageIcon("D://DSC_0675.jpg"));
		lblPreviewContent.setSize(10,10);
		
		btnLoader.setPreferredSize(new Dimension(30,30));
		btnLoader.setBorderPainted(false);
		btnRemoval.setBorderPainted(false);
		btnCancel.setBorderPainted(false);
		btnHistory.setBorderPainted(false);
		
		//lblStatusBar.setBorder(BorderFactory.createEmptyBorder(580, 560, 0, 0));//状态栏个人信息向右对齐
	}
}

-----------未完待续

 

package zuiquchong;

import java.io.File;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;

/** 
 * @author 苏宝伢 E-mail:by.su@qq.com 
 * @version 创建时间: 2017年4月10日 下午2:25:10
 */
public class FileOperation {
//	String strFilePath;
	
	//显示目录下所有文件夹和文件,待用递归完善
	
	
	public List<String> displayFile(String strFilePath){
		File f = new File(strFilePath);
		File[] fileList = f.listFiles();
		List<String> fileNameList = new ArrayList<>();
		for(File file:fileList){
			fileNameList.add(file.getAbsolutePath());
		}
		return fileNameList;
	}

}
package zuiquchong;

import java.awt.BorderLayout;
import java.awt.Dimension;
import java.awt.GridLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.FocusEvent;
import java.awt.event.FocusListener;
import java.awt.event.MouseEvent;
import java.awt.event.MouseListener;
import java.util.List;
import java.util.regex.Matcher;
import java.util.regex.Pattern;

import javax.swing.BorderFactory;
import javax.swing.ImageIcon;
import javax.swing.JButton;
import javax.swing.JFileChooser;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JTextArea;
import javax.swing.SwingConstants;
import javax.swing.event.CaretEvent;
import javax.swing.event.CaretListener;

/** 
 * @author 苏宝伢 E-mail:by.su@qq.com 
 * @version 创建时间: 2017年4月5日 下午12:47:32
 */
public class RemovalUI extends JFrame{

	JPanel JPanelTitle,JPanelTextArea,JPanelLblPreview,JPanelOperation,JPanelContainer,JPanelLblStatusBar;
	JButton btnLoader,btnRemoval,btnRecovery,btnHistory;
	JTextArea displayContent;
	JScrollPane scroll;
	JLabel lblTitle,lblPreviewContent,lblStatusBar;
	
	
	public RemovalUI(){
		super("最去重文件管理器");
		initialization();
	}
	public static void main(String[] args) {
		new RemovalUI();
	}
	
	//初始化UI窗体
	public void initialization(){
		buildComponent();
		addComponentToPanel();
		componentStyle();
		uiLayout();
		this.setSize(800, 600);
		this.setResizable(false);            //不能改变大小
		this.setVisible(true);               //设置窗口可见
		this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
	}
	
	//创建各组件对象、添加监听对象、注册监听
	public void buildComponent(){
		JPanelTextArea = new JPanel();
		JPanelTextArea = new JPanel();
		JPanelContainer = new JPanel();
		JPanelLblPreview = new JPanel();
		JPanelOperation = new JPanel();
		JPanelTitle = new JPanel();
		JPanelLblStatusBar = new JPanel();
		displayContent = new JTextArea(29,48);
		scroll = new JScrollPane(displayContent);//添加滚动条
		scroll.setVerticalScrollBarPolicy(JScrollPane.VERTICAL_SCROLLBAR_AS_NEEDED);//添加垂直方向滚动条
		scroll.setHorizontalScrollBarPolicy(JScrollPane.HORIZONTAL_SCROLLBAR_AS_NEEDED); //添加水平方向滚动条
		lblTitle = new JLabel("最去重文件管理器",SwingConstants.CENTER);
		lblPreviewContent = new JLabel();
		btnLoader = new JButton("载入");
		btnRemoval = new JButton("去重");
		btnRecovery = new JButton("撤销");
		btnHistory = new JButton("历史记录");
		lblStatusBar = new JLabel("by不最醉不龟归  | e-mail:by.su@qq.com",SwingConstants.RIGHT);
		//---创建监听对象
		ButtonListener uiEvent = new ButtonListener();
		FocusEventListener focusEvent = new FocusEventListener();
		MouseEventListener mouseEvent = new MouseEventListener();
		
		//注册监听btnLoader
		btnLoader.addActionListener(uiEvent);
		//注册监听btnRemoval
		btnRemoval.addActionListener(uiEvent);
		//注册监听btnCancel
		btnRecovery.addActionListener(uiEvent);
		//注册监听btnHistory
		btnHistory.addActionListener(uiEvent);
		
		//注册监听
		displayContent.addFocusListener(focusEvent);
		
		displayContent.addMouseListener(mouseEvent);
	}
    //往容器中添加组件
	public void addComponentToPanel(){
		this.add(JPanelTitle);
		this.add(JPanelContainer);
		this.add(JPanelLblStatusBar);
		JPanelTitle.add(lblTitle);
		JPanelTextArea.add(scroll);
//		JPanelTextArea.add(displayContent);
		JPanelLblStatusBar.add(lblStatusBar);
	}
	//窗体布局
	public void uiLayout(){
		//==============总体布局================================
		this.setLayout(new BorderLayout(10,10));//边界布局
		this.add(JPanelTextArea,BorderLayout.WEST);
		this.add(JPanelContainer,BorderLayout.EAST);
		this.add(JPanelTitle,BorderLayout.NORTH);
		this.add(JPanelLblStatusBar,BorderLayout.SOUTH);
		//===============右侧布局================================
		JPanelContainer.setLayout(new GridLayout(2,1));//网格布局
		JPanelContainer.add(lblPreviewContent);
		JPanelContainer.add(JPanelOperation);
		
		//================右下布局===============================
		JPanelOperation.setLayout(null);//无布局,绝对布局
		
		JPanelOperation.add(btnLoader);
		JPanelOperation.add(btnRemoval);
		JPanelOperation.add(btnRecovery);
		JPanelOperation.add(btnHistory);
		btnLoader.setBounds(260,30,120,30);
		btnRemoval.setBounds(260,80,120,30);
		btnRecovery.setBounds(260,130,120,30);
		btnHistory.setBounds(260,180,120,30);
	}
	//组件样式
	public void componentStyle(){
		lblTitle.setFont(new java.awt.Font("",1,20));//设置lblTitle字体和大小
		lblTitle.setBorder(BorderFactory.createEmptyBorder(10, 0, 0, 0));//设置lblTitle边框,上左下右
		lblPreviewContent.setIcon(new ImageIcon("D://bysu//个人知识拓展//机器学习//PB1636 王者归来:OpenCV3使用Java开发手册//PB1636//samples//DSC_0675.jpg"));
		lblPreviewContent.setSize(10,10);
		
		btnLoader.setPreferredSize(new Dimension(30,30));
		btnLoader.setBorderPainted(false);
		btnRemoval.setBorderPainted(false);
		btnRecovery.setBorderPainted(false);
		btnHistory.setBorderPainted(false);
		
		//lblStatusBar.setBorder(BorderFactory.createEmptyBorder(580, 560, 0, 0));//状态栏个人信息向右对齐
	}
	
	//Button按钮的内部监听类
	class ButtonListener implements ActionListener{
		String strPath = "D:\\Users\\EX-SUBAOYA001\\Documents";
		
		@Override
		public void actionPerformed(ActionEvent e){
			Object source = e.getSource();
			
			if(source == btnLoader){                              //点击载入
				displayContent.setText("");
				
				FileOperation f = new FileOperation();
				List<String> list = f.displayFile(strPath);
				for(Object obj:list){
					displayContent.append((String)obj);
					displayContent.append("\r\n");
				}
				
				//打开一个文件对话框
				JFileChooser fc = new JFileChooser();
				fc.setFileSelectionMode(JFileChooser.FILES_AND_DIRECTORIES );
				int chooseValue = fc.showOpenDialog(null);
				if(chooseValue==JFileChooser.APPROVE_OPTION){
					String chooseFilePath = fc.getSelectedFile().getPath();
					if(!chooseFilePath.equals(strPath)){
						displayContent.setText("");
						list = f.displayFile(chooseFilePath);
						for(Object obj:list){
							displayContent.append((String)obj);
							displayContent.append("\r\n");
						}
						strPath = chooseFilePath;
					}else{
						System.out.println("选中的文件目录与现在的一样");
					}
				}else{
					System.out.println("没有选中文件夹");
				}
			}else if(source == btnRemoval){                      //点击去重
				System.out.println("btnRemoval");
			}else if(source == btnRecovery){                       //点击撤销
				System.out.println("btnCancel");
			}else{                                                  //显示历史记录
				System.out.println("btnHistory");
			}
		}
	}
	
	//FocusEvent焦点触发
	class FocusEventListener implements FocusListener{

		@Override
		public void focusGained(FocusEvent e) {
			Object source = e.getSource();
			if(source == displayContent){
				if(displayContent.getText()!=""){
					System.out.println("点击文本编辑框" + displayContent.getRows());
				}else{
					System.out.println("文本框非空");
				}
				
			}
		}

		@Override
		public void focusLost(FocusEvent e) {
			
		}
	}
	
	//鼠标监听类
	class MouseEventListener implements MouseListener{
		FileOperation f = new FileOperation();
		int count =0;
		@Override
		public void mouseClicked(MouseEvent e) {
			Object source = e.getSource();
			if(source == displayContent){
				System.out.println(getRowText(displayContent.getText()));
			}
		}

		@Override
		public void mousePressed(MouseEvent e) {
			
		}

		@Override
		public void mouseReleased(MouseEvent e) {
			
		}

		@Override
		public void mouseEntered(MouseEvent e) {
			
		}

		@Override
		public void mouseExited(MouseEvent e) {
			
		}
	}

	//JTextArea内容

		FileOperation f = new FileOperation();
		//显示JTextArea控件中所在行的内容

		public  String getRowText(String text){
			public int rows = 0;
			displayContent.addCaretListener(new CaretListener() {  
				
                public void caretUpdate(CaretEvent e) {  
                    try {  
                        int offset = e.getDot() ;  //获得插入符的位置。   
                       
                        //getLineOfOffset(int offset)  将组件文本中的偏移量转换为行号  
                        int row = displayContent.getLineOfOffset(offset);  
                          
                        //getLineStartOffset(int line)   取得给定行起始处的偏移量。  
                        //getLineEndOffset(int line)     取得给定行结尾处的偏移量。  
                        int column = e.getDot() - displayContent.getLineStartOffset(row);  
                         
                        // 在状态栏中显示当前光标所在行号、所在列号  
                        System.out.println("Line: " + (row + 1) + ", Column: " + (column+1)); 
                        row = displayContent.getLineStartOffset(row+1);
                        System.out.println(row +"fffff");
                        
                    } catch (Exception ex) {  
                        ex.printStackTrace();  
                    }  
                }  
			}); 
			
            String getText="";
            String regex = "\n";
               Pattern p =Pattern.compile(regex);
               String[] r = p.split(text);
               if(!((r[rows-1].trim()).equals(""))){
            	   getText = r[rows-1];
               }
            return getText;
         }
}




























/*package zuiquchong;

import java.awt.BorderLayout;
import java.awt.Dimension;
import java.awt.GridLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.util.List;

import javax.swing.BorderFactory;
import javax.swing.ImageIcon;
import javax.swing.JButton;
import javax.swing.JFileChooser;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JTextArea;
import javax.swing.SwingConstants;

*//** 
 * @author 苏宝伢 E-mail:by.su@qq.com 
 * @version 创建时间: 2017年4月5日 下午12:47:32
 *//*
public class RemovalUI extends JFrame{

	JPanel JPanelTitle,JPanelTextArea,JPanelLblPreview,JPanelOperation,JPanelContainer,JPanelLblStatusBar;
	JButton btnLoader,btnRemoval,btnCancel,btnHistory;
	JTextArea displayContent;
	JScrollPane scroll;
	JLabel lblTitle,lblPreviewContent,lblStatusBar;
	
	
	public RemovalUI(){
		super("最去重文件管理器");
		initialization();
	}
	public static void main(String[] args) {
		new RemovalUI();
	}
	
	//初始化UI窗体
	public void initialization(){
		buildComponent();
		addComponentToPanel();
		componentStyle();
		uiLayout();
		this.setSize(800, 600);
		this.setResizable(false);            //不能改变大小
		this.setVisible(true);               //设置窗口可见
		this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
	}
	
	//创建各组件对象、添加监听对象、注册监听
	public void buildComponent(){
		JPanelTextArea = new JPanel();
		JPanelTextArea = new JPanel();
		JPanelContainer = new JPanel();
		JPanelLblPreview = new JPanel();
		JPanelOperation = new JPanel();
		JPanelTitle = new JPanel();
		JPanelLblStatusBar = new JPanel();
		displayContent = new JTextArea(30,48);
		scroll = new JScrollPane(displayContent);//添加滚动条
		scroll.setVerticalScrollBarPolicy(JScrollPane.VERTICAL_SCROLLBAR_AS_NEEDED);
		lblTitle = new JLabel("最去重文件管理器",SwingConstants.CENTER);
		lblPreviewContent = new JLabel();
		btnLoader = new JButton("载入");
		btnRemoval = new JButton("去重");
		btnCancel = new JButton("撤销");
		btnHistory = new JButton("历史记录");
		lblStatusBar = new JLabel("by不最醉不龟归  | e-mail:by.su@qq.com",SwingConstants.RIGHT);
		//---创建监听对象
		ButtonListener uiEvent = new ButtonListener();
		
		//注册监听btnLoader
		btnLoader.addActionListener(uiEvent);
		//注册监听btnRemoval
		btnRemoval.addActionListener(uiEvent);
		//注册监听btnCancel
		btnCancel.addActionListener(uiEvent);
		//注册监听btnHistory
		btnHistory.addActionListener(uiEvent);
	}
    //往容器中添加组件
	public void addComponentToPanel(){
		this.add(JPanelTitle);
		this.add(JPanelContainer);
		this.add(JPanelLblStatusBar);
		JPanelTitle.add(lblTitle);
		JPanelTextArea.add(displayContent);
		JPanelLblStatusBar.add(lblStatusBar);
	}
	//窗体布局
	public void uiLayout(){
		//==============总体布局================================
		this.setLayout(new BorderLayout(10,10));//边界布局
		this.add(JPanelTextArea,BorderLayout.WEST);
		this.add(JPanelContainer,BorderLayout.EAST);
		this.add(JPanelTitle,BorderLayout.NORTH);
		this.add(JPanelLblStatusBar,BorderLayout.SOUTH);
		//===============右侧布局================================
		JPanelContainer.setLayout(new GridLayout(2,1));//网格布局
		JPanelContainer.add(lblPreviewContent);
		JPanelContainer.add(JPanelOperation);
		
		//================右下布局===============================
		JPanelOperation.setLayout(null);//无布局,绝对布局
		
		JPanelOperation.add(btnLoader);
		JPanelOperation.add(btnRemoval);
		JPanelOperation.add(btnCancel);
		JPanelOperation.add(btnHistory);
		btnLoader.setBounds(260,30,120,30);
		btnRemoval.setBounds(260,80,120,30);
		btnCancel.setBounds(260,130,120,30);
		btnHistory.setBounds(260,180,120,30);
	}
	//组件样式
	public void componentStyle(){
		lblTitle.setFont(new java.awt.Font("",1,20));//设置lblTitle字体和大小
		lblTitle.setBorder(BorderFactory.createEmptyBorder(10, 0, 0, 0));//设置lblTitle边框,上左下右
		lblPreviewContent.setIcon(new ImageIcon("D://bysu//个人知识拓展//机器学习//PB1636 王者归来:OpenCV3使用Java开发手册//PB1636//samples//DSC_0675.jpg"));
		lblPreviewContent.setSize(10,10);
		
		btnLoader.setPreferredSize(new Dimension(30,30));
		btnLoader.setBorderPainted(false);
		btnRemoval.setBorderPainted(false);
		btnCancel.setBorderPainted(false);
		btnHistory.setBorderPainted(false);
		
		//lblStatusBar.setBorder(BorderFactory.createEmptyBorder(580, 560, 0, 0));//状态栏个人信息向右对齐
	}
	
	//内部监听类
	class ButtonListener implements ActionListener{
			
			@Override
			public void actionPerformed(ActionEvent e){
				Object source = e.getSource();
				if(source == btnLoader){
					displayContent.setText("");
					String strPath = "D:/Users/EX-SUBAOYA001/Documents";
					FileOperation f = new FileOperation();
					List<String> list = f.displayFile(strPath);
					for(Object obj:list){
						displayContent.append((String)obj);
						displayContent.append("\r\n");
					}
					
					//打开一个文件对话框
					JFileChooser fc = new JFileChooser();
					fc.setFileSelectionMode(JFileChooser.FILES_AND_DIRECTORIES );
					fc.showOpenDialog(null);
					String chooseFilePath = fc.getSelectedFile().getPath();
					
					if(chooseFilePath!=strPath){
						displayContent.setText("");
						list = f.displayFile(chooseFilePath);
						for(Object obj:list){
							displayContent.append((String)obj);
							displayContent.append("\r\n");
						}
					}else{
						
					}
				}else if(source == btnRemoval){
					System.out.println("btnRemoval");
				}else if(source == btnCancel){
					System.out.println("btnCancel");
				}else{
					System.out.println("btnHistory");
				}
			}
		}
}*/





public  String getRowText(String text){
			int rows = 0;
			class MyCaretListener implements CaretListener{
				 int tempResult = 0;
				 @Override
				 public void caretUpdate(CaretEvent e) {  
	                    try {  
	                        int offset = e.getDot() ;  //获得插入符的位置。   
	                       
	                        //getLineOfOffset(int offset)  将组件文本中的偏移量转换为行号  
	                        int row = displayContent.getLineOfOffset(offset);  
	                          
	                        //getLineStartOffset(int line)   取得给定行起始处的偏移量。  
	                        //getLineEndOffset(int line)     取得给定行结尾处的偏移量。  
	                        int column = e.getDot() - displayContent.getLineStartOffset(row);  
	                         
	                        // 在状态栏中显示当前光标所在行号、所在列号  
	                        System.out.println("Line: " + (row + 1) + ", Column: " + (column+1)); 
	                        tempResult = displayContent.getLineStartOffset(row+1);
	                        System.out.println(row +"fffff");
	                        
	                    } catch (Exception ex) {  
	                        ex.printStackTrace();  
	                    }  
	              }
				 public int getResult(){//为了从内部类中取出结果
					 return tempResult;
				 }
			}
			MyCaretListener mycaretListener = new MyCaretListener();
			displayContent.addCaretListener(mycaretListener); 
			rows = mycaretListener.getResult();
			
            String getText="";
            String regex = "\n";
               Pattern p =Pattern.compile(regex);
               String[] r = p.split(text);
               if(!((r[rows-1].trim()).equals(""))){
            	   getText = r[rows-1];
               }
            return getText;
         }

 

转载于:https://my.oschina.net/bysu/blog/874188

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值