【问题标题】:Handling Click for A Custom Swing component Extending JPanel?处理扩展 JPanel 的自定义 Swing 组件的单击?
【发布时间】:2011-04-03 18:20:12
【问题描述】:

您将如何处理扩展 JPanel 的自定义 swing 组件中的点击。我正在制作游戏,我想知道如何处理点击。特别是在与gui不同的线程中,以及绘画?我将如何做到这一点是我的代码:

  package com.games.bubblecards;

    import java.awt.Graphics;
    import java.awt.Graphics2D;

    import javax.swing.JPanel;

    public class Canvas extends JPanel {
        private static final long serialVersionUID = 1L;

        public Canvas() {
            super();
        }

        public void paint(Graphics g) {
            Graphics2D g2d = (Graphics2D)g;
            g2d.drawString("Hello It Works", 10, 10);
        }

}

【问题讨论】:

  • 自定义绘画是通过覆盖paintComponent()方法而不是paint()方法来完成的。也不要使用 Canvas 作为类名,因为 Canvas 已经是一个 AWT 类,这会让人感到困惑。

标签: java swing graphics2d custom-component


【解决方案1】:

您通过向组件添加 MouseListener 来处理鼠标点击,这对于标准 Swing 组件或扩展 Swing 组件的自定义组件没有什么不同。鼠标监听器的方法必须在 Swing 主线程,EDT 上调用(默认情况下这是不需要特殊代码的情况),但是监听器代码可以根据需要设置和启动后台线程。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-10-25
    • 1970-01-01
    • 1970-01-01
    • 2015-07-21
    • 2020-11-08
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多