import ...
class Gre
{
JTextField text1=new JTextField(20);
JTextField text2=new JTextField(20);
Frame frame = new Frame("...") ; Gre()
{
frame.setLayout(new FlowLayout()) ;
frame.add(text1);
frame.add(text2);
frame.setVisible(true) ;
frame.pack() ;
frame.setResizable(false);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);//问题在这里
public class data
{
public static void main(String args[])
{
new Gre();
}
}上面这个程序运行时构造的窗口用frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 来关闭时提示出错,
请问像这样的窗口怎样关闭呢?
class Gre
{
JTextField text1=new JTextField(20);
JTextField text2=new JTextField(20);
Frame frame = new Frame("...") ; Gre()
{
frame.setLayout(new FlowLayout()) ;
frame.add(text1);
frame.add(text2);
frame.setVisible(true) ;
frame.pack() ;
frame.setResizable(false);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);//问题在这里
public class data
{
public static void main(String args[])
{
new Gre();
}
}上面这个程序运行时构造的窗口用frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 来关闭时提示出错,
请问像这样的窗口怎样关闭呢?
Frame frame = new Frame("...") ;----->>>JFrame frame = new JFrame("...") ;
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);//问题在这里
Frame 类的怎么进行关闭!
用这个时编译不会出错,可是程序运行时会出错.
提示:
Exception in thread "main" java.lang.Error:Do not use javax.swing.JFrame.setLayout()
use javax.swing.JFrame.getContentPane().setLayout() instead
at javax.swing.JFrame.createRootPaneException(Unknown Source)
at javax.swing.JFrame.setLayout(Unknown Source)
at Gre.<init>(data.java:18)
at data.main(data.java:62)不懂什么意思!还请高人指点!
import javax.swing.*;
import java.awt.*;
class Gre
{
JTextField text1=new JTextField(20);
JTextField text2=new JTextField(20);
JFrame frame = new JFrame("...") ; Gre()
{
frame.setLayout(new FlowLayout()) ;
frame.add(text1);
frame.add(text2);
frame.setResizable(false);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);//问题在这里
frame.setVisible(true) ;
frame.pack() ;
}
}
public class data
{
public static void main(String args[])
{
new Gre();
}
}
import java.awt.*;
class Gre
{
JTextField text1=new JTextField(20);
JTextField text2=new JTextField(20);
JFrame frame = new JFrame("...") ;
Gre()
{
frame.getContentPane().setLayout(new FlowLayout()) ;
frame.getContentPane().add(text1);
frame.getContentPane().add(text2);
frame.getContentPane().setVisible(true) ;
frame.pack();
frame.setResizable(false); // 设置窗口为固定大小
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setVisible(true);
}
}
public class data
{
public static void main(String args[])
{
new Gre();
}
}正确的应该是这样的!谢谢上面各位的回答,有的地方得加getContentPane().
不然虽然编译没出错,但也不能运行.我把这个贴出来,希望对以后像我这样的菜鸟有所帮助!
import java.util.Date;
import java.awt.Frame;
import java.awt.event.WindowEvent;
import java.awt.event.WindowListener;
//需要实现一个WindowListener接口
import javax.swing.JFrame;
public class DemoFrame extends Frame implements WindowListener { /**
* @param args
*/
public DemoFrame(){
//初始化
setVisible(true);
setSize(100,100);
setTitle("It's Me");
addWindowListener(this);
}
@Override
public void windowOpened(WindowEvent e) {
// TODO Auto-generated method stub
System.out.println("opend already!");
}
@Override
public void windowClosing(WindowEvent e) {
// TODO Auto-generated method stub
System.out.println("Closing");
//这里就是管理窗体
//dispose是释放
this.dispose();
}
@Override
public void windowClosed(WindowEvent e) {
// TODO Auto-generated method stub
System.out.println("Closed!");
}
@Override
public void windowIconified(WindowEvent e) {
// TODO Auto-generated method stub
}
@Override
public void windowDeiconified(WindowEvent e) {
// TODO Auto-generated method stub
}
@Override
public void windowActivated(WindowEvent e) {
// TODO Auto-generated method stub
}
@Override
public void windowDeactivated(WindowEvent e) {
// TODO Auto-generated method stub
}
public static void main(String[] args) {
// TODO Auto-generated method stub
System.out.println(new Date().toString());
new DemoFrame();
}
}