java - 如何处理 AWT 框架中的关闭按钮

标签 java java-8 awt java-2d

我从一些基本的 Java2D 示例开始 - 特别是在 AWT 下 - 遵循“计算机图形 Java2D/Java3D 简介”一书的第一个示例,我编写了以下两个类,其中一个作为“主”类:

package com.example.test;

public class Test {

    public static void main( String[] args ) {

            MyChart terminal = new MyChart();
            terminal.setTitle("The first Java 2D program");
            terminal.setSize(350,80);
            terminal.setVisible(true);

    }

}

另一个扩展了 AWT 框架:

package com.example.test;

import java.awt.Frame;
import java.awt.Graphics;
import java.awt.Graphics2D;
import java.awt.Insets;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;

public class MyChart extends Frame {


        public void MyChart() {

            this.addWindowListener(new WindowAdapter(){  
                public void windowClosing(WindowEvent e) {  
                    dispose();  
                }  
            });

        }

        public void paint(Graphics g) {
            Graphics2D g2d =  (Graphics2D) g;
            g2d.drawString("Hello world!", 30, 50);
        };


}

这会在屏幕上生成预期的“Hello World”窗口,但是当我单击关闭按钮(Windows 10)时,没有任何反应。我试图弄清楚在添加监听器时我做错了什么,但没有成功。

欢迎任何提示或建议,甚至进一步调试。

如上所述,我使用的是 Java:1.8.0_191 和 Windows 10。

最佳答案

您没有在主类中调用 MyChart 函数。 下面的代码工作正常。

public class Test {

        public static void main( String[] args ) {
            System.out.println("Terminal Group");
            MyChart terminal = new MyChart();
            terminal.MyChart();//I added this.
            terminal.setTitle("The first Java 2D program");
            terminal.setSize(350,80);
            terminal.setVisible(true);
    }

}

public class MyChart extends Frame {
        public void MyChart() {
            this.addWindowListener(new WindowAdapter(){  
                public void windowClosing(WindowEvent e) {  
               dispose();
               }  
            });

        }

        public void paint(Graphics g) {
            Graphics2D g2d =  (Graphics2D) g;
            g2d.drawString("Hello world!", 30, 50);
        };
}

关于java - 如何处理 AWT 框架中的关闭按钮,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55078687/

相关文章:

Java,如何将一个对象添加到ArrayList并从另一个对象中减少一个对象

java - jsp缓存问题

Java:Graphics 2d,绘制速度不够快

java - 为什么 mathGPA 不能正常工作?

Java正则表达式匹配模式

java - 使用方法引用替换链式方法调用

使用 CompletableFuture 处理 Java 8 供应商异常

带有正则表达式的 Java 流过滤器不起作用

java - 我将如何向弹出菜单添加单选按钮?

java - 如何将具有 ComponentColorModel 的 BufferedImage 转换为 SWT ImageData?