快速业务通道

使用Java Swing创建一个XML编辑器之二 - 编程入门网

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-06-22
textArea.getText() ); }

使用Java Swing创建一个XML编辑器之二(3)

时间:2010-12-16

接下来,我们将创建新的 JScrollPane和 JTextArea并且把 JTextArea添加到 JScrollPane中。这样,我们将得到包含 XTree组件的原始的 JScrollPane和包含 JTextArea组件的新的 JScrollPane。这个原始的 XTree构造程序还有一个修改之处。我们将删除先前传进这个方法的字符串参数。(该功能通过我们接下来要构建的另一个 XmlEditor()构造程序操作)我们把这两个方框放进一个 JSplitPane中,它是一个有分隔器的组件,可以在这个分隔器的另一边包含一个组件。(参见代码段6)。

代码段6:

jScroll = new JScrollPane(); jScrollRt = new JScrollPane(); textArea = new JTextArea( 200,150 ); jScrollRt.getViewport().add( textArea ); xTree = new XTree(); xTree.getSelectionModel().setSelectionMode(     TreeSelectionModel.SINGLE_TREE_SELECTION ); xTree.setShowsRootHandles( true ); xTree.setEditable( false ); jScroll.getViewport().add( xTree ); splitPane = new JSplitPane( JSplitPane.HORIZONTAL_SPLIT,     jScroll, jScrollRt ); splitPane.setOneTouchExpandable(true); splitPane.setDividerLocation(200); minimumSize = new Dimension(200, 150); jScroll.setMinimumSize( minimumSize ); jScrollRt.setMinimumSize( minimumSize ); splitPane.setPreferredSize( new Dimension(400, 300) ); getContentPane().add( splitPane, BorderLayout.CENTER );

现在我们需要修改这个构造程序来处理这个非 XML文件的情景。删除当前构造程序需要的第二个字符串参数。这个构造程序现在就是默认的构造程序。我们将创建一个新的构造程序来接收一个字符串参数。它将先调用默认构造程序,然后处理这个参数。(参见代码段7 )而且,main()方法必须被修改以便在没有XML文件的事件中,仍然能创建一个默认的XmlEditor对象。(参见代码段8)

代码段7:

public XmlEditor( String title, ArrayList xmlText ) throws ParserConfigurationException {   this( title );   textArea.setText( ( String )xmlText.get( 0 ) + "\n" );   for ( int i = 1; i < xmlText.size(); i++ )    textArea.append( ( String )xmlText.get( i ) + "\n" );    xTree.refresh( textArea.getText() ); }

代码段8:

public static void main( String[] args ) { String fileName = ""; BufferedReader reader; String line; ArrayList xmlText = null; XmlEditor xmlEditor; try { if( args.length > 0 ) { fileName = args[0]; if ( fileName.substring( fileName.indexOf( ''.'' ) ).equals( ".xml" ) ) { reader = new BufferedReader( new FileReader( fileName ) ); xmlText = new ArrayList(); while ( ( line = reader.readLine() ) != null ) { xmlText.add( line ); } reader.close(); xmlEditor = new XmlEditor( "XmlEditor 1.0", xmlText ); } else { help(); } } else { xmlEditor = new XmlEditor( "XmlEditor 1.0" ); } } catch( FileNotFoundException fnfEx ) { System.out.println( fileName + " was not found." ); exit(); } catch( Exception ex ) { ex.printStackTrace(); exit(); } }

为了很容易地处理 JTextArea数据,还需要最后一次必要的修改。一般我们不把这段文本当成一个长的字符串,而是把它当成一系列字符串,每行表示一个包含在数组列表中的字符串。这需要修改我们的构造程序接收的参数,并且修改在先前把这个数据作为一个

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号