**问题一:
自己定义了一个Mydialog类(继承自JDialog类)不知道为什么在使用setModal()方法时会失效.
简化代码如下:
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
class Mydialog extends JDialog
{
Mydialog( JFrame fram )
{
super( fram, "Mydialog" );
this.setBounds( 120, 120, 100, 100 );
setVisible(true);
setModal(true); //这里并没有把对话框设为有模式的 }
}
public class Test extends JApplet
{
Mydialog dia;
JFrame fra;
public void init()
{
fra = new JFrame("frame");
fra.setBounds( 100, 100, 100, 100 );
fra.setVisible(true);
dia = new Mydialog(fra);
}
}
如果不用继承则很正常......**问题二:
看到书上的例子JFrame类有个setDefaultCloseOperation()方法可以自定义关闭窗口,我看到JDialog也有这么个方法,可是如法炮制后发现不管用,
代码如下:public class test
{ public static void main( String args[] )
{
JFrame f = new JFrame("frame");
f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
JDialog d = new JDialog(f,"dialog");
d.setDefaultCloseOperation(JDialog.DO_NOTHING_ON_CLOSE);
f.setBounds( 100, 100, 100, 100 );
d.setBounds( 120, 120, 100, 100 );
f.setVisible(true);
d.setVisible(true);
}
}
搞不懂...**问题三:
写了个读写文本文件的小程序,用到了FileDialog类,可是不知道为什么,想要把文本Load到TextArea里的时候,之前必须有过一次成功的Save操作,这教俺很是不解哈,
代码如下:import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import java.io.*;class Fwindow extends Frame implements ActionListener
{
BufferedReader br;
BufferedWriter bw;
FileReader fr;
FileWriter fw;
FileDialog file_s, file_l;
TextArea t;
MenuBar mb;
Menu m1, m2;
MenuItem mi1, mi2;
Fwindow()
{
super("Save & Load");
file_s = new FileDialog( this, "Save", FileDialog.SAVE );
file_l = new FileDialog( this, "Load", FileDialog.LOAD );
t = new TextArea(20,20);

mb = new MenuBar();
m1 = new Menu("click here");
m2 = new Menu("then...");
mi1 = new MenuItem("save");
mi2 = new MenuItem("load");
m2.add(mi1); m2.add(mi2);
m1.add(m2);
mb.add(m1);
this.setMenuBar(mb);
this.add( t, "Center" );
this.setBounds( 100, 100, 200, 200 );
this.setVisible(true);
mi1.addActionListener(this);
mi2.addActionListener(this);

this.addWindowListener( new WindowAdapter()
{
public void windowClosing( WindowEvent e )
{
System.exit(0);
}
});

file_s.addWindowListener( new WindowAdapter()
{
public void windowClosing( WindowEvent e )
{
file_s.setVisible(false);
}
});
file_l.addWindowListener( new WindowAdapter()
{
public void windowClosing( WindowEvent e )
{
file_l.setVisible(false);
}
});
}
public void actionPerformed( ActionEvent e )
{
if( e.getSource() == mi1 ) //如果点选sava
{
file_s.setVisible(true);
String name = file_s.getFile();
if( name != null )
{
String dir = file_s.getDirectory();
try
{
fw = new FileWriter( new File( dir, name ) );
bw = new BufferedWriter(fw);
bw.write(t.getText(), 0, ( t.getText() ).length() );
bw.flush();
bw.close();
fw.close();
}
catch(Exception ee) {}
t.setText("\n you save \n" + name );
}
else
{
t.setText("\nno save");
}
}
else //如果点选Load
{
file_l.setVisible(true);
String name = file_l.getFile();
if( name != null )
{
try
{
String mir = file_s.getDirectory();
fr = new FileReader( new File( mir, name ) );
br = new BufferedReader(fr);
String s;
while( ( s = br.readLine() ) != null )
{
t.append(s + '\n');
}
br.close();
fr.close();
}
catch(Exception ev) {}
t.append( "\n you load " + name );
}
else 
{
t.setText( "\nno load" );
}
}

}
}
public class Test
{
public static void main( String[] args )
{
new Fwindow();
}
}
暂时问题就这么多吧,肯请诸位指点一二.