java如何关闭JFrame
packageapplet;importjava.awt.*;importjava.awt.event.*;publicclassApp20_1extendsFramei...
package applet;
import java.awt.*;
import java.awt.event.*;
public class App20_1 extends Frame implements ActionListener
{
static App20_1 frm=new App20_1();
static Button btn=new Button("Draw");
public static void main(String args[])
{
BorderLayout br=new BorderLayout();
frm.setTitle("drawing example");
frm.setLayout(br);
frm.setSize(200,150);frm.add(btn,br.SOUTH);
btn.addActionListener(frm);
frm.setVisible(true);
}
public void actionPerformed(ActionEvent e)
{
Graphics g=getGraphics();
g.drawRect(100,50,70,55);
}
}
问题:
1,在Eclipse下运行后,点击窗体关闭按钮不能关闭.
2,static App20_1 frm=new App20_1();
static Button btn=new Button("Draw");
这两句为什么设置变量为static静态变量?
在开始的地方增加 import javax.swing.*;后把此句public class App20_1 extends Frame implements ActionListener中的Frame改为JFrame后执行,为什么点击两次才能显示结果?请再给指点一下吧。谢谢了。 展开
import java.awt.*;
import java.awt.event.*;
public class App20_1 extends Frame implements ActionListener
{
static App20_1 frm=new App20_1();
static Button btn=new Button("Draw");
public static void main(String args[])
{
BorderLayout br=new BorderLayout();
frm.setTitle("drawing example");
frm.setLayout(br);
frm.setSize(200,150);frm.add(btn,br.SOUTH);
btn.addActionListener(frm);
frm.setVisible(true);
}
public void actionPerformed(ActionEvent e)
{
Graphics g=getGraphics();
g.drawRect(100,50,70,55);
}
}
问题:
1,在Eclipse下运行后,点击窗体关闭按钮不能关闭.
2,static App20_1 frm=new App20_1();
static Button btn=new Button("Draw");
这两句为什么设置变量为static静态变量?
在开始的地方增加 import javax.swing.*;后把此句public class App20_1 extends Frame implements ActionListener中的Frame改为JFrame后执行,为什么点击两次才能显示结果?请再给指点一下吧。谢谢了。 展开
5个回答
展开全部
1、你没有为窗口添加窗口事件侦听
2、这两个变量要在你的main方法里调用,你的main方法是静态的,静态方法只能使用静态变量,所以要将这两个变量设置成静态的
frm.addWindowListener(new WindowListener(){
@Override
public void windowActivated(WindowEvent e) {
// TODO Auto-generated method stub
}
@Override
public void windowClosed(WindowEvent e) {
// TODO Auto-generated method stub
}
@Override
public void windowClosing(WindowEvent e) {
// TODO Auto-generated method stub
}
@Override
public void windowDeactivated(WindowEvent e) {
// TODO Auto-generated method stub
}
@Override
public void windowDeiconified(WindowEvent e) {
// TODO Auto-generated method stub
}
@Override
public void windowIconified(WindowEvent e) {
// TODO Auto-generated method stub
}
@Override
public void windowOpened(WindowEvent e) {
// TODO Auto-generated method stub
}});
貌似低版本jdk需要手动添加窗口事件监听
你在那个close事件里加上关闭程序的代码就行了
2、这两个变量要在你的main方法里调用,你的main方法是静态的,静态方法只能使用静态变量,所以要将这两个变量设置成静态的
frm.addWindowListener(new WindowListener(){
@Override
public void windowActivated(WindowEvent e) {
// TODO Auto-generated method stub
}
@Override
public void windowClosed(WindowEvent e) {
// TODO Auto-generated method stub
}
@Override
public void windowClosing(WindowEvent e) {
// TODO Auto-generated method stub
}
@Override
public void windowDeactivated(WindowEvent e) {
// TODO Auto-generated method stub
}
@Override
public void windowDeiconified(WindowEvent e) {
// TODO Auto-generated method stub
}
@Override
public void windowIconified(WindowEvent e) {
// TODO Auto-generated method stub
}
@Override
public void windowOpened(WindowEvent e) {
// TODO Auto-generated method stub
}});
貌似低版本jdk需要手动添加窗口事件监听
你在那个close事件里加上关闭程序的代码就行了
展开全部
1,点击关闭按钮退出是:frm.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
2,只有写成静态的才可以在main方法中调用。
2,只有写成静态的才可以在main方法中调用。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
试一试XXX.dispose()方法吧!只关闭当前想要关闭的窗口,不影响其他窗口
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
package applet;
import java.awt.*;
import java.awt.event.*;
public class App20_1 extends Frame implements ActionListener
{
public static void main(String args[])
{
App20_1 frm=new App20_1();
Button btn=new Button("Draw");
BorderLayout br=new BorderLayout();
frm.setTitle("drawing example");
frm.setLayout(br);
frm.setSize(200,150);frm.add(btn,br.SOUTH);
btn.addActionListener(frm);
frm.setVisible(true);
}
public void actionPerformed(ActionEvent e)
{
Graphics g=getGraphics();
g.drawRect(100,50,70,55);
}
}
不太清楚的情况下,不要轻易尝试static修饰类型,点击窗口关闭按钮不能关闭时你没有没写关闭的响应代码,添加一个frm.addwindowlistener然后重写里面的关闭代码就可以了
import java.awt.*;
import java.awt.event.*;
public class App20_1 extends Frame implements ActionListener
{
public static void main(String args[])
{
App20_1 frm=new App20_1();
Button btn=new Button("Draw");
BorderLayout br=new BorderLayout();
frm.setTitle("drawing example");
frm.setLayout(br);
frm.setSize(200,150);frm.add(btn,br.SOUTH);
btn.addActionListener(frm);
frm.setVisible(true);
}
public void actionPerformed(ActionEvent e)
{
Graphics g=getGraphics();
g.drawRect(100,50,70,55);
}
}
不太清楚的情况下,不要轻易尝试static修饰类型,点击窗口关闭按钮不能关闭时你没有没写关闭的响应代码,添加一个frm.addwindowlistener然后重写里面的关闭代码就可以了
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
调用dispose()方法就可以关闭Jframe窗口
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询