除非我们使用下列设置覆盖它:
setDefaultCloseOperation( JFrame.DO_NOTHING_ON_CLOSE );
新的设置将使响应窗口关闭事件时绝对不会关闭它本身。它只有响应System.exit()调用时才会关闭它本身。
一旦你添加了菜单组件,定义用于菜单事件的事件处理程序并添加取消意外关闭窗口事件的方法,我们就可以测试这个应用程序并开始创建、编辑并保存 XML文件了。
恭喜!恭喜!你已经有了手工编写的基于Swing的XML编辑器。剩下的工作就由你来完成了,你需要验证它,增加它的健壮性,还可以增加一些新的功能。
使用Java Swing创建一个XML编辑器之三(3)
时间:2010-12-16
附:代码段1
class newMenuHandler implements ActionListener
{
public void actionPerformed ( ActionEvent ae )
{
textArea.setText( "" );
try
{ // 创建一个新的XTree
xTree = new XTree();
xTree.getSelectionModel().setSelectionMode(
TreeSelectionModel.SINGLE_TREE_SELECTION );
xTree.setShowsRootHandles( true );
// 这个工具更高级的版本,允许修改JTree
xTree.setEditable( false );
}
catch( Exception ex )
{
String message = ex.getMessage();
ex.printStackTrace();
}
file://结束try/catch
}
file://结束actionPerformed()
}
file://结束class newMenuHandler
class openMenuHandler implements ActionListener
{
JFileChooser jfc;
Container parent;
int choice;
openMenuHandler()
{
super();
jfc = new JFileChooser();
jfc.setSize( 400,300 );
jfc.setFileFilter( new XmlFileFilter() );
parent = openItem.getParent(); }
file://结束openMenuHandler()
class openMenuHandler implements ActionListener
{
JFileChooser jfc;
Container parent;
int choice;
openMenuHandler()
{
super();
jfc = new JFileChooser();
jfc.setSize( 400,300 );
jfc.setFileFilter( new XmlFileFilter() );
parent = openItem.getParent();
}
public void actionPerformed( ActionEvent ae )
{
choice = jfc.showOpenDialog( parent );
if ( choice == JFileChooser.APPROVE_OPTION )
{
String fileName, line;
BufferedReader reader;
fileName = jfc.getSelectedFile().getAbsolutePath();
try
{
reader = new BufferedReader(
new FileReader( fileName ) );
textArea.setText( reader.readLine() + "\n" );
while ( ( line = reader.readLine() ) != null )
{
textArea.append( line + "\n" );
}
reader.close();
xTree.refresh( textArea.getText() );
}
catch ( Exception ex )
{
String message = ex.getMessage();
ex.printStackTrace();
}
jfc.setCurrentDirectory( new File( fileName ) );
}
}
}
class saveMenuHandler implements ActionListener
{
JFileChooser jfc;
Container parent;
int choice;
saveMenuHandler()
{
super();
jfc = new JFileChooser();
jfc.setSize( 400,300 );
jfc.setFileFilter( new XmlFileFilter() );
parent = sa
|