象。下面是"新建"按钮的事件代码。
newButton.addSelectionListener(new SelectionAdapter()
{
public void widgetSelected(SelectionEvent event)
{
fn = "";
shell.setText("第一个SWT程序");
text.setText("");
}
});
步入SWT/JFace世界,你还等什么(4)
时间:2011-01-02 天极 李延彬
由于SelectionAdapter是一个抽象类,它有一个抽象方法widgetSelected,在上述代码被override了。在"新建"按钮中将全局文件名赋成空串,并将窗体的标题赋成初始状态,最后将文本框清空。
接下来让我们看看"打开"按钮的事件代码:
openButton.addSelectionListener(new SelectionAdapter()
{
public void widgetSelected(SelectionEvent event)
{
FileDialog dlg = new FileDialog(shell, SWT.OPEN);
String fileName = dlg.open();
try
{
if (fileName != null)
{
// 打开指定的文件
FileInputStream fis = new FileInputStream(fileName);
text.setText("");
BufferedReader in = new BufferedReader(new InputStreamReader(fis));
String s = null;
// 将指定的文件一行一行地加到文本框中
while ((s = in.readLine()) != null)
text.append(s + "\r\n");
}
if (fileName != null)
{
fn = fileName;
shell.setText(fn);
MessageBox successBox = new MessageBox(shell);
successBox.setText("信息");
successBox.setMessage("打开文件成功!");
successBox.open();
}
}
catch (Exception e)
{
MessageBox errorBox = new MessageBox(shell, SWT.ICON_ERROR);
errorBox.setText("错误");
errorBox.setMessage("打开文件失败!");
errorBox.open();
}
}
});
步入SWT/JFace世界,你还等什么(5)
时间:2011-01-02 天极 李延彬
上面代码的基本逻辑是使用打开对话框选择一个文件,使用FileInputStream将这个文件打开,并且将文件中的内容一行一行地加入到文本框中,如果这个过程失败,显示错识对话框,如果成功,将fn变量和窗体的标题栏都赋成这个文件名。
最后让我们实现"保存"按钮事件的代码。
saveButton.addSelectionListener(new SelectionAdapter()
{
public void widgetSelected(SelectionEvent event)
{
try
{
String fileName = null;
if (fn.equals(""))
{
FileDialog dlg = new FileDialog(shell, SWT.SAVE);
fileName = dlg.open();
if(fileName != null)
fn = fileName;
}
if (fn != "")
{
FileOutputStream fos = new FileOutputStream(fn);
OutputStreamWriter out = new OutputStreamWriter(fos);
out.write(text.getText());
out.close();
shell.setText(fn);
MessageBox successBox = new MessageBox(shell);
successBox.setText("信息");
successBox.setMessage("保存文件成功!");
successBox.open();
}
}
catch (Exception e)
{
MessageBox errorBox = new MessageBox(shell, SWT.ICON_ERROR);
|