java文本 *** 作删除文本中的某一行(或一个对象)

java文本 *** 作删除文本中的某一行(或一个对象),第1张

你说的不就是一个记事本吗,

//import java packages
import javaawt;
import javaawtevent;
import javatext;
import javautil;
import javaio;
import javaxswingundo;
import javaxswingborder;
import javaxswing;
import javaxswingtext;
import javaxswingevent;
import javaawtdatatransfer;
public class Notepad extends JFrame implements ActionListener,DocumentListener{

//定义变量

//菜单
JMenu fileMenu,editMenu,formatMenu,viewMenu,helpMenu;

//"文件"的菜单项
JMenuItem fileMenu_New,fileMenu_Open,fileMenu_Save,fileMenu_SaveAs,fileMenu_PageSetup,fileMenu_Print,fileMenu_Exit;

//"编辑"的菜单项
JMenuItem editMenu_Undo,editMenu_Redo,editMenu_Cut,editMenu_Copy,editMenu_Paste,editMenu_Delete,editMenu_Find,editMenu_FindNext,editMenu_Replace,
editMenu_GoTo,editMenu_SelectAll,editMenu_TimeDate;

//"格式"的菜单项
JCheckBoxMenuItem formatMenu_LineWrap;
JMenu formatMenu_Color;
JMenuItem formatMenu_Font,formatMenu_Color_FgColor,formatMenu_Color_BgColor;

//"查看"的菜单项
JCheckBoxMenuItem viewMenu_Status;

//"帮助"的菜单项
JMenuItem helpMenu_HelpTopics,helpMenu_About;

//文本编辑区域
JTextArea editArea;

//状态栏标签
JLabel statusLabel;

//d出菜单及菜单项
JPopupMenu popupMenu;
JMenuItem popupMenu_Undo,popupMenu_Redo,popupMenu_Cut,popupMenu_Copy,popupMenu_Paste,popupMenu_Delete,popupMenu_SelectAll;

//系统剪贴板
Toolkit toolKit=ToolkitgetDefaultToolkit();
Clipboard clipBoard=toolKitgetSystemClipboard();

//其它变量
boolean isNewFile=true; //是否新文件(未保存过的)
File currentFile; //当前文件名
String oldValue; //存放编辑区原来的内容,用于比较文本是否有改动
JButton fontOkButton; //字体设置里的"确定"按钮

//工具栏按钮
JButton newButton,openButton,saveButton,saveAsButton,printButton,undoButton,redoButton,
cutButton,copyButton,pasteButton,deleteButton,searchButton,timeButton,fontButton,
boldButton,italicButton,fgcolorButton,bgcolorButton,helpButton;

//创建撤消 *** 作管理器
protected UndoManager undo = new UndoManager();
protected UndoableEditListener undoHandler = new UndoHandler();

//设置编辑区默认字体
protected Font defaultFont=new Font("宋体",FontPLAIN,12);

//构造函数开始
public Notepad()
{
super("黄斌的记事本");

//获取容器
Container container=getContentPane();
//创建菜单条
JMenuBar menuBar = new JMenuBar();

//创建文件菜单及菜单项并注册事件监听
JMenu fileMenu = new JMenu("文件(F)", true);
fileMenusetMnemonic('F');
fileMenu_New = new JMenuItem("新建(N)", 'N');
fileMenu_NewsetAccelerator(KeyStrokegetKeyStroke(KeyEventVK_N, InputEventCTRL_MASK));
fileMenu_NewaddActionListener(this);
fileMenu_Open = new JMenuItem("打开(O)", 'O');
fileMenu_OpensetAccelerator(KeyStrokegetKeyStroke(KeyEventVK_O, InputEventCTRL_MASK));
fileMenu_OpenaddActionListener(this);
fileMenu_Save = new JMenuItem("保存(S)", 'S');
fileMenu_SavesetAccelerator(KeyStrokegetKeyStroke(KeyEventVK_S, InputEventCTRL_MASK));
fileMenu_SaveaddActionListener(this);
fileMenu_SaveAs = new JMenuItem("另存为(A)", 'A');
fileMenu_SaveAsaddActionListener(this);

fileMenu_PageSetup = new JMenuItem("页面设置(U)",'U');
fileMenu_PageSetupaddActionListener(this);

fileMenu_Print = new JMenuItem("打印(P)", 'P');
fileMenu_PrintsetAccelerator(KeyStrokegetKeyStroke(KeyEventVK_P, InputEventCTRL_MASK));
fileMenu_PrintaddActionListener(this);
fileMenu_Exit = new JMenuItem("退出(X)",'X');
fileMenu_ExitaddActionListener(this);

//创建编辑菜单及菜单项并注册事件监听
JMenu editMenu = new JMenu("编辑(E)", true);
editMenusetMnemonic('E');
editMenuaddActionListener(new ActionListener()
{
public void actionPerformed(ActionEvent e){
checkMenuItemEnabled();//设置剪切、复制、粘贴、删除等功能的可用性
}
}
);
editMenu_Undo = new JMenuItem("撤消(U)",'U');
editMenu_UndosetAccelerator(KeyStrokegetKeyStroke(KeyEventVK_Z, InputEventCTRL_MASK));
editMenu_UndoaddActionListener(this);
editMenu_UndosetEnabled(false);

editMenu_Redo = new JMenuItem("重做(R)",'R');
editMenu_RedosetAccelerator(KeyStrokegetKeyStroke(KeyEventVK_Y,InputEventCTRL_MASK));
editMenu_RedoaddActionListener(this);
editMenu_RedosetEnabled(false);
editMenu_Cut = new JMenuItem("剪切(T)",'T');
editMenu_CutsetAccelerator(KeyStrokegetKeyStroke(KeyEventVK_X, InputEventCTRL_MASK));
editMenu_CutaddActionListener(this);
editMenu_Copy = new JMenuItem("复制(C)",'C');
editMenu_CopysetAccelerator(KeyStrokegetKeyStroke(KeyEventVK_C, InputEventCTRL_MASK));
editMenu_CopyaddActionListener(this);
editMenu_Paste = new JMenuItem("粘贴(P)",'P');
editMenu_PastesetAccelerator(KeyStrokegetKeyStroke(KeyEventVK_V, InputEventCTRL_MASK));
editMenu_PasteaddActionListener(this);

editMenu_Delete = new JMenuItem("删除(L)",'L');
editMenu_DeletesetAccelerator(KeyStrokegetKeyStroke(KeyEventVK_DELETE, 0));
editMenu_DeleteaddActionListener(this);

editMenu_Find = new JMenuItem("查找(F)",'F');
editMenu_FindsetAccelerator(KeyStrokegetKeyStroke(KeyEventVK_F, InputEventCTRL_MASK));
editMenu_FindaddActionListener(this);

editMenu_FindNext = new JMenuItem("查找下一个(N)",'N');
editMenu_FindNextsetAccelerator(KeyStrokegetKeyStroke(KeyEventVK_F3,0));
editMenu_FindNextaddActionListener(this);
editMenu_Replace = new JMenuItem("替换(R)",'R');
editMenu_ReplacesetAccelerator(KeyStrokegetKeyStroke(KeyEventVK_H, InputEventCTRL_MASK));
editMenu_ReplaceaddActionListener(this);
editMenu_GoTo = new JMenuItem("转到(G)",'G');
editMenu_GoTosetAccelerator(KeyStrokegetKeyStroke(KeyEventVK_G, InputEventCTRL_MASK));
editMenu_GoToaddActionListener(this);
editMenu_SelectAll = new JMenuItem("全选",'A');
editMenu_SelectAllsetAccelerator(KeyStrokegetKeyStroke(KeyEventVK_A, InputEventCTRL_MASK));
editMenu_SelectAlladdActionListener(this);

editMenu_TimeDate = new JMenuItem("时间/日期(D)",'D');
editMenu_TimeDatesetAccelerator(KeyStrokegetKeyStroke(KeyEventVK_F5,0));
editMenu_TimeDateaddActionListener(this);
//创建格式菜单及菜单项并注册事件监听
JMenu formatMenu = new JMenu("格式(O)", true);
formatMenusetMnemonic('O');

formatMenu_LineWrap = new JCheckBoxMenuItem("自动换行(W)");
formatMenu_LineWrapsetMnemonic('W');
formatMenu_LineWrapsetState(true);
formatMenu_LineWrapaddActionListener(this);
formatMenu_Font = new JMenuItem("字体(F)",'F');
formatMenu_FontaddActionListener(this);
formatMenu_Color = new JMenu("设置颜色");
formatMenu_Color_FgColor=new JMenuItem("字体颜色");
formatMenu_Color_FgColoraddActionListener(this);
formatMenu_Color_BgColor=new JMenuItem("背景颜色");
formatMenu_Color_BgColoraddActionListener(this);
//创建查看菜单及菜单项并注册事件监听
JMenu viewMenu = new JMenu("查看(V)", true);
viewMenusetMnemonic('V');

viewMenu_Status = new JCheckBoxMenuItem("状态栏(S)");
viewMenu_StatussetMnemonic('S');
viewMenu_StatussetState(true);
viewMenu_StatusaddActionListener(this);
//创建帮助菜单及菜单项并注册事件监听
JMenu helpMenu = new JMenu("帮助(H)", true);
helpMenusetMnemonic('H');
helpMenu_HelpTopics = new JMenuItem("帮助主题(H)",'H');
helpMenu_HelpTopicssetAccelerator(KeyStrokegetKeyStroke(KeyEventVK_F1,0));
helpMenu_HelpTopicsaddActionListener(this);

helpMenu_About = new JMenuItem("关于记事本(A)",'A');
helpMenu_AboutaddActionListener(this);
//向菜单条添加"文件"菜单及菜单项
menuBaradd(fileMenu);
fileMenuadd(fileMenu_New);
fileMenuadd(fileMenu_Open);
fileMenuadd(fileMenu_Save);
fileMenuadd(fileMenu_SaveAs);
fileMenuaddSeparator(); //分隔线
fileMenuadd(fileMenu_PageSetup);
fileMenuadd(fileMenu_Print);
fileMenuaddSeparator(); //分隔线
fileMenuadd(fileMenu_Exit);

//向菜单条添加"编辑"菜单及菜单项
menuBaradd(editMenu);
editMenuadd(editMenu_Undo);
editMenuadd(editMenu_Redo);
editMenuaddSeparator(); //分隔线
editMenuadd(editMenu_Cut);
editMenuadd(editMenu_Copy);
editMenuadd(editMenu_Paste);
editMenuadd(editMenu_Delete);
editMenuaddSeparator(); //分隔线
editMenuadd(editMenu_Find);
editMenuadd(editMenu_FindNext);
editMenuadd(editMenu_Replace);
editMenuadd(editMenu_GoTo);
editMenuaddSeparator(); //分隔线
editMenuadd(editMenu_SelectAll);
editMenuadd(editMenu_TimeDate);

//向菜单条添加"格式"菜单及菜单项
menuBaradd(formatMenu);
formatMenuadd(formatMenu_LineWrap);
formatMenuadd(formatMenu_Font);
formatMenuaddSeparator();
formatMenuadd(formatMenu_Color);
formatMenu_Coloradd(formatMenu_Color_FgColor);
formatMenu_Coloradd(formatMenu_Color_BgColor);
//向菜单条添加"查看"菜单及菜单项
menuBaradd(viewMenu);
viewMenuadd(viewMenu_Status);

//向菜单条添加"帮助"菜单及菜单项
menuBaradd(helpMenu);
helpMenuadd(helpMenu_HelpTopics);
helpMenuaddSeparator();
helpMenuadd(helpMenu_About);
//向窗口添加菜单条
thissetJMenuBar(menuBar);

//创建文本编辑区并添加滚动条
editArea=new JTextArea(20,50);
JScrollPane scroller=new JScrollPane(editArea);
scrollersetVerticalScrollBarPolicy(JScrollPaneVERTICAL_SCROLLBAR_ALWAYS);
containeradd(scroller,BorderLayoutCENTER);//向容器添加文本编辑区
editAreasetWrapStyleWord(true); //设置单词在一行不足容纳时换行
editAreasetLineWrap(true); //设置文本编辑区自动换行默认为true,即会"自动换行"
editAreasetFont(defaultFont); //设置编辑区默认字体
editAreasetBackground(Colorwhite); //设置编辑区默认背景色
editAreasetForeground(Colorblack); //设置编辑区默认前景色
oldValue=editAreagetText(); //获取原文本编辑区的内容

//编辑区注册事件监听
editAreagetDocument()addUndoableEditListener(undoHandler);
editAreagetDocument()addDocumentListener(this);

//创建右键d出菜单
popupMenu=new JPopupMenu();
popupMenu_Undo=new JMenuItem("撤消(U)",'U');
popupMenu_Redo=new JMenuItem("重做(R)",'R');
popupMenu_Cut =new JMenuItem("剪切(T)",'T');
popupMenu_Copy=new JMenuItem("复制(C)",'C');
popupMenu_Paste=new JMenuItem("粘贴(P)",'P');
popupMenu_Delete=new JMenuItem("删除(D)",'D');
popupMenu_SelectAll=new JMenuItem("全选(A)",'A');

popupMenu_UndosetEnabled(false); //撤消选项初始设为不可用
popupMenu_RedosetEnabled(false); //重做选项初始设为不可用

//向右键菜单添加菜单项和分隔符
popupMenuadd(popupMenu_Undo);
popupMenuadd(popupMenu_Redo);
popupMenuaddSeparator();
popupMenuadd(popupMenu_Cut);
popupMenuadd(popupMenu_Copy);
popupMenuadd(popupMenu_Paste);
popupMenuadd(popupMenu_Delete);
popupMenuaddSeparator();
popupMenuadd(popupMenu_SelectAll);

//右键菜单注册事件
popupMenu_UndoaddActionListener(this);
popupMenu_RedoaddActionListener(this);
popupMenu_CutaddActionListener(this);
popupMenu_CopyaddActionListener(this);
popupMenu_PasteaddActionListener(this);
popupMenu_DeleteaddActionListener(this);
popupMenu_SelectAlladdActionListener(this);

//文本编辑区注册右键菜单事件
editAreaaddMouseListener(
new MouseAdapter(){
public void mousePressed(MouseEvent e)
{
checkForTriggerEvent(e);
}

public void mouseReleased(MouseEvent e)
{
checkForTriggerEvent(e);
}

private void checkForTriggerEvent(MouseEvent e)
{
if(eisPopupTrigger())
popupMenushow(egetComponent(),egetX(),egetY());
checkMenuItemEnabled(); //设置剪切、复制、粘贴、删除等功能的可用性
editArearequestFocus(); //编辑区获取焦点
}

});
//创建工具栏
JPanel toolBar=new JPanel();
toolBarsetLayout(new FlowLayout(FlowLayoutLEFT));

Icon newIcon=new ImageIcon("Icons/newgif");
Icon openIcon=new ImageIcon("Icons/opengif");
Icon saveIcon=new ImageIcon("Icons/savegif");
Icon saveAsIcon=new ImageIcon("Icons/saveasgif");
Icon printIcon=new ImageIcon("Icons/printgif");
Icon undoIcon=new ImageIcon("Icons/undogif");
Icon redoIcon=new ImageIcon("Icons/redogif");
Icon cutIcon=new ImageIcon("Icons/cutgif");
Icon copyIcon=new ImageIcon("Icons/copygif");
Icon pasteIcon=new ImageIcon("Icons/pastegif");
Icon deleteIcon=new ImageIcon("Icons/deletegif");
Icon searchIcon=new ImageIcon("Icons/searchgif");
Icon timeIcon=new ImageIcon("Icons/timegif");
Icon fontIcon=new ImageIcon("Icons/fontgif");
Icon boldIcon=new ImageIcon("Icons/boldgif");
Icon italicIcon=new ImageIcon("Icons/italicgif");
Icon bgcolorIcon=new ImageIcon("Icons/bgcolorgif");
Icon fgcolorIcon=new ImageIcon("Icons/fgcolorgif");
Icon helpIcon=new ImageIcon("Icons/helpgif");

newButton= new JButton(newIcon);
openButton=new JButton(openIcon);
saveButton= new JButton(saveIcon);
saveAsButton=new JButton(saveAsIcon);
printButton=new JButton(printIcon);
undoButton=new JButton(undoIcon);
undoButtonsetEnabled(false);
redoButton=new JButton(redoIcon);
redoButtonsetEnabled(false);
cutButton=new JButton(cutIcon);
cutButtonsetEnabled(false);
copyButton=new JButton(copyIcon);
copyButtonsetEnabled(false);
pasteButton=new JButton(pasteIcon);
pasteButtonsetEnabled(false);
deleteButton=new JButton(deleteIcon);
deleteButtonsetEnabled(false);
searchButton=new JButton(searchIcon);
timeButton=new JButton(timeIcon);
fontButton=new JButton(fontIcon);
boldButton=new JButton(boldIcon);
italicButton=new JButton(italicIcon);
fgcolorButton=new JButton(fgcolorIcon);
bgcolorButton=new JButton(bgcolorIcon);
helpButton=new JButton(helpIcon);

newButtonsetPreferredSize(new Dimension(22,22));
openButtonsetPreferredSize(new Dimension(22,22));
saveButtonsetPreferredSize(new Dimension(22,22));
saveAsButtonsetPreferredSize(new Dimension(22,22));
printButtonsetPreferredSize(new Dimension(22,22));
undoButtonsetPreferredSize(new Dimension(22,22));
redoButtonsetPreferredSize(new Dimension(22,22));
cutButtonsetPreferredSize(new Dimension(22,22));
copyButtonsetPreferredSize(new Dimension(22,22));
pasteButtonsetPreferredSize(new Dimension(22,22));
deleteButtonsetPreferredSize(new Dimension(22,22));
searchButtonsetPreferredSize(new Dimension(22,22));
timeButtonsetPreferredSize(new Dimension(22,22));
fontButtonsetPreferredSize(new Dimension(22,22));
boldButtonsetPreferredSize(new Dimension(22,22));
italicButtonsetPreferredSize(new Dimension(22,22));
fgcolorButtonsetPreferredSize(new Dimension(22,22));
bgcolorButtonsetPreferredSize(new Dimension(22,22));
helpButtonsetPreferredSize(new Dimension(22,22));

//注册工具栏按钮事件
newButtonaddActionListener(this);
openButtonaddActionListener(this);
saveButtonaddActionListener(this);
saveAsButtonaddActionListener(this);
printButtonaddActionListener(this);
undoButtonaddActionListener(this);
redoButtonaddActionListener(this);
cutButtonaddActionListener(this);
copyButtonaddActionListener(this);
pasteButtonaddActionListener(this);
deleteButtonaddActionListener(this);
searchButtonaddActionListener(this);
timeButtonaddActionListener(this);
fontButtonaddActionListener(this);
boldButtonaddActionListener(this);
italicButtonaddActionListener(this);
fgcolorButtonaddActionListener(this);
bgcolorButtonaddActionListener(this);
helpButtonaddActionListener(this);

java的一些快捷键介绍如下:

1、ALT+/。此快捷键为用户编辑的好帮手,能为用户提供内容的辅助。

2、Ctrl+O。显示类中方法和属性的大纲,能快速定位类的方法和属性,在查找Bug时非常有用。

3、Ctrl+/。快速添加注释,能为光标所在行或所选定行快速添加注释或取消注释。

4、Ctrl+D。删除当前行,不用为删除一行而按那么多次的删除键。

5、Ctrl+Space。代码助手完成一些代码的插入,但一般和输入法有冲突,可以修改输入法的热键。

6、Ctrl+Shift+E。显示管理当前打开的所有的View的管理器

参考资料:

Eclipse快捷键指南-百度百科

删除不好做,因为你是一个文件内容的删除。
可以用字符串数组来保存每一行的值,删除了之后,再重新保存进去。
可以这样做:比如说你的文件路径:c:/atxt
1File file = new File("c:/atxt");
2BufferedReader reader = new BufferedReader(file);
3byte[] strValue = new byte[(int)filelength()];
4String str = readerread(strValue);//按文件大小一次读入
5String rows = strsplit("\r\n");//按换行符拆分,即数组的每一条,对应文件每一行的内容。
6如果要删除按条件删除某一行,只需要判断字符串数组是否存在这一行了,如果存在,替换为“”即可。
7Writer writer = new FileWriter(file);
8
for(int i=0;i<rowslength;i++){
writerwrite(rows[i]);
}
只是分析了一下,具体步骤还是你来完成了。。
RandomAccessFile raf = new RandomAccess("wenjiantxt");
char ch[] = new char[3];
char to[] = {'s','s','x'};
boolean get = false;
while(get){
rafreadChars(ch);
if(ch[0]=='d' && ch[1]=='d' && ch[2]=='s'){
get = true;
}
}
rafseek(rafgetFilePointer() -6 );
rafwriteChars(to);
这个代码就是把wenjiantxt中出现的第一个dds修改成ssx。

没有直接的函数实现
因为RandomAccessFile是继承Object类,而且只实现了DataOutput, DataInput, Closeable这三个接口(也就是只拥有这三个接口里声明的方法 *** 作和从Object继承来的方法 *** 作)
一个个分析:
1Object是所有类的父类,不存在你想要的那个方法(函数)
2DataOutput 接口用于将任意 Java 基本类型转换为一系列字节,并将这些字节写入二进制流
所有方法都是writeXXX
3DataInput 接口用于从二进制流中读取字节,并重构所有 Java 基本类型数据。--跟 DataOutput 成对应关系 所有方法都是readXXX

jtable修改内容可以通过defaulttablemodel来修改的,以下是defaulttablemodel的简单用法

int col = jTable1getSelectedColumn();//获取选中的列号
int row = jTable1getSelectedRow();//获取选中的行号
DefaultTableModel model = (DefaultTableModel) jTable1getModel();//获取defaulttablemodel
Object val = modelgetValueAt(row, col);//根据行号和列号,获取某个单元格的值
//其他
modelremoveRow(index);//删除某行
modelsetValueAt(value, row, col);//修改某单元格的值

更多defaulttablemodel用法,可以去查API文档

如果你是想清空一行中的内容可以
for(int i=0,i<col;i++){
a[5][i] = “”; //第五行
}
如果你是想把a[3][3]内容删除了同时变为a[2][3]那就要重新赋值了


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/13405120.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-07-29
下一篇 2023-07-29

发表评论

登录后才能评论

评论列表(0条)

保存